在ES5,Array已經(jīng)提供了indexOf用來查找某個(gè)元素的位置,如果不存在就返回-1,但是這個(gè)函數(shù)在判斷數(shù)組是否包含某個(gè)元素時(shí)有兩個(gè)小不足,第一個(gè)是它會(huì)返回-1和元素的位置來表示是否包含,在定位方面是沒問題,就是不夠語義化。另一個(gè)問題是不能判斷是否有NaN的元素。
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN] console.log('%s', arr1.indexOf(NaN))
結(jié)果:
-1
ES6提供了Array.includes()函數(shù)判斷是否包含某一元素,除了不能定位外,解決了indexOf的上述的兩個(gè)問題。它直接返回true或者false表示是否包含元素,對(duì)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))
結(jié)果:
true
false
true
includes()函數(shù)的第二個(gè)參數(shù)表示判斷的起始位置。
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))
結(jié)果:
true
true
false
第二個(gè)參數(shù)也可以是負(fù)數(shù),表示從右數(shù)過來第幾個(gè),但是不改變判斷搜索的方向,搜索方向還是從左到右。
console.log('%s', arr1.includes('k', -1)) console.log('%s', arr1.includes('k', -2)) console.log('%s', arr1.includes('i', -3))
結(jié)果:
false
true
false
總結(jié)
以上所述是小編給大家介紹的ES6中Array.includes()函數(shù)的用法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com