JavaScript 陣列includes()

admin發表於2018-09-01

ES2015之前,由於沒有內建的相關方法,判斷陣列是否包含指定元素要繁瑣一些。

只能通過遍歷的方式逐一比對,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let arr=[1,2,3,4];
function isHave(ele,arr){
  for(let index=0;index<arr.length;index++){
    if(arr[index]==ele){
      return true
    }else if(index==length-1){
      return false;
    }
  }
}
console.log(isHave(2,arr))

上面通過for迴圈遍歷的方式實現了判斷功能,比較麻煩。

ES2015新增includes方法可以非常輕鬆的檢測陣列中是否含有指定元素。

如果包含則返回true,否則返回false。

ES2015陣列更多內容可以參閱ES2015陣列擴充套件一章節。

ES5陣列相關內容可以參閱JavaScript Array物件一章節

語法結構:

[JavaScript] 純文字檢視 複製程式碼
arr.includes(ele[, start])

引數解析:

(1).ele:必需,要檢測的元素。

(2).start:可選,規定從何處開始進行檢索,預設從起始位置開始檢索。

瀏覽器相容:

(1).IE瀏覽器支援此方法。

(2).edge瀏覽器支援此方法。

(3).谷歌瀏覽器支援此方法。

(4).火狐瀏覽器支援此方法。

(5).opera瀏覽器支援此方法。

(6).safria瀏覽器支援此方法。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let arr=["青島市南區","螞蟻部落",6,"ES2015"];
console.log(arr.includes(5));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/01/120057ib2ubbihqpi5vqo5.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

因為陣列中不存在數字5,所以返回值為false。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let arr=["青島市南區","螞蟻部落",6,"ES2015"];
console.log(arr.includes("螞蟻部落"));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/01/120137begksgnaatn7szen.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

很明顯,陣列中是包含字串"螞蟻部落"的,所以返回值為true。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let arr=["青島市南區","螞蟻部落",6,"ES2015"];
console.log(arr.includes("螞蟻部落",2));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/01/120230ei6ignd0nrsoi2gq.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

雖然陣列中元素包含"螞蟻部落",但是返回值依然是false。

這是因為是從陣列索引2處(6)開始檢索的,當然無法檢索到字串"螞蟻部落"。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let arr=["青島市南區","螞蟻部落",6,"ES2015"];
console.log(arr.includes("螞蟻"));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/01/120303qbcdcyijujqdeeqm.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

必須實現完全匹配才可以,雖然陣列元素"螞蟻部落"包含"螞蟻",但是"螞蟻"並不是陣列元素之一。

相關文章