最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中擴(kuò)展Array contains方法實(shí)例

 更新時(shí)間:2020年08月23日 23:52:42   投稿:junjie  
這篇文章主要介紹了JavaScript中擴(kuò)展Array contains方法實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下

首先腳本之家小編先為大家分享一個(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)很簡(jiǎ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語(yǔ)言中,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()

但是我們可以通過(guò)擴(kuò)展的方法來(lái)實(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)然也有通過(guò)正則實(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è)人需求,腳本之家小編建議能不用正則則不用,效率問(wèn)題,代碼是簡(jiǎn)潔就怕一些老的瀏覽器不支持。

相關(guān)文章

最新評(píng)論

阿瓦提县| 沙河市| 乐平市| 八宿县| 章丘市| 廊坊市| 芦山县| 奇台县| 奉新县| 临夏市| 阳城县| 霞浦县| 临武县| 泽库县| 浙江省| 资溪县| 万盛区| 盈江县| 潞西市| 荥经县| 酒泉市| 山东| 丰镇市| 齐河县| 彭山县| 武鸣县| 黄平县| 宜阳县| 苏州市| 右玉县| 福贡县| 沾化县| 宁晋县| 惠水县| 萍乡市| 台北县| 呈贡县| 铜鼓县| 龙胜| 高平市| 邵阳市|