JavaScript中擴(kuò)展Array contains方法實(shí)例
首先腳本之家小編先為大家分享一個(gè)比較好用的代碼
Array.prototype.contains = function (a) { if ("string" == typeof a || "number" == typeof a) { for (var b in this) { if (a == this [b]) { return!0; }; } } return!1 };
先判斷傳入的參考是字符與數(shù)字才可以判斷,這樣就比較精準(zhǔn)。
下面是一些推薦資料可以看看
javascript的Array沒有contains方法,有時(shí)候這會(huì)不方便,contains方法實(shí)現(xiàn)很簡單:
function contains(a, obj) { var i = a.length; while (i--) { if (a[i] === obj) { return true; } } return false; }
當(dāng)然我們也可以擴(kuò)展Array類,如下js
Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; }
這樣就可以方便的使用contains方法了:
alert([1, 2, 3].contains(2)); // => true
alert([1, 2, 3].contains('2')); // => false
下面是腳本之家小編整理的幾種方法
一個(gè)小誤區(qū) JS中的contains
在Java語言中,contains可以用于判斷str1是否包含str2
原生JS中是有contains方法的
結(jié)構(gòu)與測(cè)試代碼如下
<div id="div1"> <div id="div2"> jb51.net </div> </div> <script type="text/javascript"> var div1= document.getElementById("div1"); var div2= document.getElementById("div2"); console.log(div1.contains(div2)); var str1="jb51.net"; var str2="jb51"; console.log(str1.contains(str2)); </script>
但它并不是字符串方法,,僅用于判斷DOM元素的包含關(guān)系,參數(shù)是Element類型
若要在JS中判斷倆字符串的包含關(guān)系,用indexOf()
但是我們可以通過擴(kuò)展的方法來實(shí)現(xiàn)
<div id="div1"> <div id="div2"> jb51.net </div> </div> <script type="text/javascript"> var div1= document.getElementById("div1"); var div2= document.getElementById("div2"); console.log("div1.contains(div2)="+div1.contains(div2)); //字符擴(kuò)展contains就不會(huì)報(bào)錯(cuò)了 String.prototype.contains = function(a) { return - 1 < this.indexOf(a) }; var str1="jb51.net"; var str2="jb51"; console.log("str1.contains(str2)="+str1.contains(str2)); //數(shù)組擴(kuò)展contains適用于數(shù)組判斷 Array.prototype.contains = function(a) { if ("string" == typeof a || "number" == typeof a) for (var b in this) if (a == this[b]) return ! 0; return ! 1 }; var arr1=["jb51.net","jbzj.com","jb51.com"]; var str3="jb51.net"; console.log("arr1.contains(str3)="+arr1.contains(str3)); </script>
下面是運(yùn)行結(jié)果
當(dāng)然也有通過正則實(shí)現(xiàn)的JS擴(kuò)展Array,添加contains方法
Array.prototype.contains = function(item){ return RegExp("\\b"+item+"\\b").test(this); };
直接返回true/false
JS判斷Array數(shù)組中是否包含指定元素
1.調(diào)用方式:
var arr=["a","b"];
alert(arr.in_array("a"))
2.JS判斷數(shù)組是否包含指定元素方法定義:
Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; } 或 Array.prototype.contains = function(element) { for (var i = 0; i < this.length; i++) { if (this[i] == element) { return true; } } return false; } 或 Array.prototype.in_array = function(e) { for(i=0; i<this.length && this[i]!=e; i++); return !(i==this.length); } 還有一個(gè)大牛是這樣寫的: Array.prototype.S = String.fromCharCode(2); Array.prototype.in_array = function(e) { var r = new RegExp(this.S+e+this.S); return (r.test(this.S+this.join(this.S)+this.S)); }
站外擴(kuò)展:
Jquery實(shí)現(xiàn)方式:http://api.jquery.com/jQuery.inArray/
具體選擇看個(gè)人需求,腳本之家小編建議能不用正則則不用,效率問題,代碼是簡潔就怕一些老的瀏覽器不支持。
- 如何解決Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X
- Python extract及contains方法代碼實(shí)例
- javascript中contains是否包含功能實(shí)現(xiàn)代碼(擴(kuò)展字符、數(shù)組、dom)
- C#判斷字符串中是否包含指定字符串及contains與indexof方法效率問題
- Oracle 中Contains 函數(shù)的用法
- jQuery使用contains過濾器實(shí)現(xiàn)精確匹配方法詳解
- jQuery實(shí)現(xiàn)contains方法不區(qū)分大小寫的方法
- jQuery中:contains選擇器用法實(shí)例
- PowerShell Contains函數(shù)查找字符串實(shí)例
- Java contains用法示例
相關(guān)文章
理清apply(),call()的區(qū)別和關(guān)系
如果沒接觸過動(dòng)態(tài)語言,以編譯型語言的思維方式去理解javaScript將會(huì)有種神奇而怪異的感覺,因?yàn)橐庾R(shí)上往往不可能的事偏偏就發(fā)生了,甚至覺得不可理喻.2011-08-08ES6使用 Array.includes 處理多重條件用法實(shí)例分析
這篇文章主要介紹了ES6使用 Array.includes 處理多重條件用法,結(jié)合實(shí)例形式分析了Array.includes基本功能、原理及處理多重條件相關(guān)操作技巧,需要的朋友可以參考下2020-03-03js實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播圖效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01js實(shí)現(xiàn)超酷的照片墻展示效果圖附源碼下載
這篇文章主要介紹了超酷的照片墻展示效果圖附源碼下載的相關(guān)資料,需要的朋友可以參考下2015-10-10關(guān)于JSONP跨域請(qǐng)求原理的深入解析
JSONP(JSON?with?Padding)是JSON的一種“使用模式”,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題,這篇文章主要給大家介紹了關(guān)于JSONP跨域請(qǐng)求原理的相關(guān)資料,需要的朋友可以參考下2022-01-01在JavaScript 中按字母排序之如何在 JS 中按名稱排序
有時(shí)你可能有一個(gè)單詞數(shù)組,你想按字母順序(從 a-z)對(duì)每個(gè)單詞進(jìn)行排序,或者你可能有一個(gè)包含用戶信息(包括名字)的對(duì)象數(shù)組,例如,你想按照用戶的名字來排序,接下來通過本文給大家介紹在JavaScript 中按字母排序之如何在 JS 中按名稱排序,需要的朋友可以參考下2023-09-09詳解JavaScript如何實(shí)現(xiàn)一個(gè)簡易的Promise對(duì)象
Promise對(duì)象的作用將異步操作以同步操作的流程表達(dá)出來,避免層層嵌套的回調(diào)函數(shù),而且Promise提供了統(tǒng)一的接口,使得控制異步操作更加容易。本文介紹了如何實(shí)現(xiàn)一個(gè)簡單的Promise對(duì)象,需要的可以參考一下2022-11-11