ES6之Array.includes()函數


一、定義

includes() 方法用來判斷一個數組是否包含一個指定的值,如果是返回 true,否則false。

二、語法

 

arr.includes(searchElement)
arr.includes(searchElement, fromIndex)
//searchElement:必須。需要查找的元素值。
//fromIndex:可選。表示判斷的起始位置。從該索引處開始查找 searchElement。
//如果為負值,則按升序從
array.length + fromIndex 的索引開始搜索。默認為 0。
//eg:

const arr = ['a', 'b', 'c', NaN];
console.log(arr.includes("a"));//true
console.log(arr.includes(NaN));//true
console.log(arr.includes("a",0));//true
console.log(arr.includes("a",2));//false

三、其他

如果fromIndex 大於等於數組長度 ,則返回 false 。該數組不會被搜索:

var arr = ['a', 'b', 'c']; 
arr.includes('c', 3);   //false
arr.includes('c', 100); // false

如果 fromIndex 為負值,計算出的索引將作為開始搜索searchElement的位置。如果計算出的索引小於 0,則整個數組都會被搜索。

// 數組長度是3
// fromIndex 是 -100
// computed index 是 3 + (-100) = -97
 
var arr = ['a', 'b', 'c'];
 
arr.includes('a', -100); // true
arr.includes('b', -100); // true
arr.includes('c', -100); // true

四、與es5的indexOf區別

1、首先他們的返回值,indexOf是返回數值型的,includes是返回布爾型的,所以在if條件判斷的時候includes要簡單得多,而indexOf 需要多寫一個條件進行判斷。

2、在ES5,Array已經提供了indexOf用來查找某個元素的位置,如果不存在就返回-1,但是這個函數在判斷數組是否包含某個元素時有兩個小不足,第一個是它會返回-1和元素的位置來表示是否包含。另一個問題是不能判斷是否有NaN的元素,如果數組中有NaN,你又正好需要判斷數組是否有存在NaN,這時你使用indexOf是無法判斷的,你必須使用includes這個方法。

而ES6提供的Array.includes()函數判斷是否包含某一元素,除了不能定位外,解決了indexOf的上述的兩個問題。它直接返回true或者false表示是否包含元素,對NaN一樣能有效。

3、都有自己的特點,但是那么時候使用includes什么時候使用indexOf還是要看情況來決定,如果你想要查找某個元素在數組中的位置,你就用indexOf,如果你只是想知道數組中是否存在某個元素,你用includes方法比較合適的。

 五、查看數組原型鏈

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM