欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)很簡單:

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è)人需求,腳本之家小編建議能不用正則則不用,效率問題,代碼是簡潔就怕一些老的瀏覽器不支持。

相關(guān)文章

  • 解決JS請(qǐng)求服務(wù)器gbk文件亂碼的問題

    解決JS請(qǐng)求服務(wù)器gbk文件亂碼的問題

    本文給大家介紹js請(qǐng)求服務(wù)器gbk文件亂碼問題,解決辦法需要設(shè)置xhr.overrideMimeType("text/csv;charset=gb2312");才正確,具體代碼怎么設(shè)置,將在本文中給大家提到,需要的朋友一起學(xué)習(xí)吧
    2015-10-10
  • 遍歷DOM對(duì)象內(nèi)的元素屬性示例代碼

    遍歷DOM對(duì)象內(nèi)的元素屬性示例代碼

    如何遍歷DOM對(duì)象內(nèi)的元素屬性,例如要獲取一個(gè)id為btn的按鈕的所有屬性該怎么實(shí)現(xiàn)呢?下面有個(gè)不錯(cuò)的教程,大家可以參考下
    2014-02-02
  • 理清apply(),call()的區(qū)別和關(guān)系

    理清apply(),call()的區(qū)別和關(guān)系

    如果沒接觸過動(dòng)態(tài)語言,以編譯型語言的思維方式去理解javaScript將會(huì)有種神奇而怪異的感覺,因?yàn)橐庾R(shí)上往往不可能的事偏偏就發(fā)生了,甚至覺得不可理喻.
    2011-08-08
  • ES6使用 Array.includes 處理多重條件用法實(shí)例分析

    ES6使用 Array.includes 處理多重條件用法實(shí)例分析

    這篇文章主要介紹了ES6使用 Array.includes 處理多重條件用法,結(jié)合實(shí)例形式分析了Array.includes基本功能、原理及處理多重條件相關(guān)操作技巧,需要的朋友可以參考下
    2020-03-03
  • js實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播圖效果

    js實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)旋轉(zhuǎn)木馬輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • js實(shí)現(xiàn)超酷的照片墻展示效果圖附源碼下載

    js實(shí)現(xiàn)超酷的照片墻展示效果圖附源碼下載

    這篇文章主要介紹了超酷的照片墻展示效果圖附源碼下載的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • 關(guān)于JSONP跨域請(qǐng)求原理的深入解析

    關(guān)于JSONP跨域請(qǐng)求原理的深入解析

    JSONP(JSON?with?Padding)是JSON的一種“使用模式”,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題,這篇文章主要給大家介紹了關(guān)于JSONP跨域請(qǐng)求原理的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 在JavaScript 中按字母排序之如何在 JS 中按名稱排序

    在JavaScript 中按字母排序之如何在 JS 中按名稱排序

    有時(shí)你可能有一個(gè)單詞數(shù)組,你想按字母順序(從 a-z)對(duì)每個(gè)單詞進(jìn)行排序,或者你可能有一個(gè)包含用戶信息(包括名字)的對(duì)象數(shù)組,例如,你想按照用戶的名字來排序,接下來通過本文給大家介紹在JavaScript 中按字母排序之如何在 JS 中按名稱排序,需要的朋友可以參考下
    2023-09-09
  • JS清空多文本框、文本域示例代碼

    JS清空多文本框、文本域示例代碼

    點(diǎn)擊按鈕清空頁面上所有的文本框、文本域,下面有個(gè)不錯(cuò)的示例,大家可以參考下其具體實(shí)現(xiàn)
    2014-02-02
  • 詳解JavaScript如何實(shí)現(xiàn)一個(gè)簡易的Promise對(duì)象

    詳解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

最新評(píng)論