最新国产好看的视频,伊人天堂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語言中,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è)人需求,腳本之家小編建議能不用正則則不用,效率問題,代碼是簡(jiǎn)潔就怕一些老的瀏覽器不支持。

相關(guān)文章

最新評(píng)論

西安市| 江达县| 衢州市| 布拖县| 徐州市| 澄迈县| 凌云县| 镇安县| 富裕县| 贵阳市| 海门市| 鹤壁市| 凤山市| 辛集市| 玛多县| 红桥区| 新和县| 和林格尔县| 黄大仙区| 汾西县| 岐山县| 元谋县| 花垣县| 新巴尔虎左旗| 奎屯市| 新昌县| 南乐县| 乳山市| 沧州市| 修武县| 乌兰浩特市| 文登市| 永顺县| 沂水县| 肃南| 茂名市| 莒南县| 平乐县| 满城县| 江阴市| 桑植县|