js includes方法 和 filter方法

weixin_33861800發表於2019-02-19

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 ]
複製程式碼

相關文章