Array.prototype.includes方法返回一個布林值,表示某個陣列是否包含給定的值,與字串的includes方法類似。該方法屬於 ES7 ,但 Babel 轉碼器已經支援
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true
複製程式碼
該方法的第二個參數列示搜尋的起始位置,預設為 0 。如果第二個引數為負數,則表示倒數的位置,如果這時它大於陣列長度(比如第二個引數為 -4 ,但陣列長度為 3 ),則會重置為從 0 開始。
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
複製程式碼
沒有該方法之前,我們通常使用陣列的indexOf方法,檢查是否包含某個值。 ndexOf方法有兩個缺點,一是不夠語義化,它的含義是找到引數值的第一個出現位置,所以要去比較是否不等於 -1 ,表達起來不夠直觀。二是,它內部使用嚴格相當運算子( === )進行判斷,這會導致對NaN的誤判。
filter方法
/*
2 filter()例項:篩選排除掉所有的小值
3
4 下例使用 filter 建立了一個新陣列,該陣列的元素由原陣列中值大於 10 的元素組成。
5
6 */
7
8 function isBigEnough(element) {
9 return element >= 10;
10 }
11 var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
12
13 console.log(filtered);//[ 12, 130, 44 ]
複製程式碼