在ES5,Array已經提供了indexOf用來查找某個元素的位置,如果不存在就返回-1,但是這個函數在判斷數組是否包含某個元素時有兩個小不足,第一個是它會返回-1和元素的位置來表示是否包含,在定位方面是沒問題,就是不夠語義化。另一個問題是不能判斷是否有NaN的元素。
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]console.log('%s', arr1.indexOf(NaN))結果:
-1
ES6提供了Array.includes()函數判斷是否包含某一元素,除了不能定位外,解決了indexOf的上述的兩個問題。它直接返回true或者false表示是否包含元素,對NaN一樣能有有效。
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]console.log('%s', arr1.includes('c'))console.log('%s', arr1.includes('z'))console.log('%s', arr1.includes(NaN))結果:
true
false
true
includes()函數的第二個參數表示判斷的起始位置。
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]console.log('%s', arr1.includes('d', 1))console.log('%s', arr1.includes('d', 3))console.log('%s', arr1.includes('d', 4))結果:
true
true
false
第二個參數也可以是負數,表示從右數過來第幾個,但是不改變判斷搜索的方向,搜索方向還是從左到右。
console.log('%s', arr1.includes('k', -1))console.log('%s', arr1.includes('k', -2))console.log('%s', arr1.includes('i', -3))結果:
false
true
false
總結
以上所述是小編給大家介紹的ES6中Array.includes()函數的用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對錯新站長站網站的支持!
新聞熱點
疑難解答
圖片精選