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

es6數組includes()用法實例分析

 更新時間:2020年04月18日 11:10:51   作者:wangliang_001  
這篇文章主要介紹了es6數組includes()用法,結合實例形式分析了es6數組includes()針對給定值判斷的相關操作技巧與使用注意事項,需要的朋友可以參考下

本文實例講述了es6數組includes()用法。分享給大家供大家參考,具體如下:

Array.prototype.includes方法返回一個布爾值,表示某個數組是否包含給定的值,與字符串的includes方法類似。ES2016引入了該方法。

[1, 2, 3].includes(2) // true
[1, 2, 3].includes(4) // true
[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方法,檢查是否包含某個值。

if (arr.indexOf(el) !== -1) {
 // ...
}

indexOf方法有兩個缺點,一是不夠語義化,它的含義是找到參數值的第一個出現位置,所以要去比較是否不等于-1,表達起來不夠直觀。二是,它內部使用嚴格相等運算符進行判斷,這會導致對NaN的誤判。

[NaN].indexOf(NaN) // -1

includes使用的是不一樣的判斷算法,就沒有這個問題。

[NaN].includes(NaN) // true

下面代碼用來檢查當前環(huán)境是否支持該方法,如果不支持,部署一個簡易的替代版本。

const contains = (() => Array.prototype.includes 
? (arr, value) => arr.includes(value)
:(arr, value) => arr.some(el => el === value) 
)()

另外,Map和Set數據結構有一個has方法需要注意與includes區(qū)分。

-Map結構的has方法,是用來查找鍵名的,比如Map.prototype.has(key),
WeakMap.prototype.has(key), Reflect.has(target, propertyKey)

-Set結構的has方法,是用來查找值的,比如Set.prototype.has(value),
WeakSet.prototype.has(value)

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

最新評論