方法:1、使用indexOf()函數,語法“數組物件.indexOf(值)”,如果返回元素位置則含有,如果返回“-1”則不含;2、使用includes()函數,語法“數組對象.includes(值)”,傳回true則含有,反之則不含。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
es6判斷陣列是否含有某個子元素
方法1:使用indexOf()函數
indexOf用來找出某個元素的位置,如果不存在就回傳-1。
const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN] console.log(arr.indexOf('c')) console.log(arr.indexOf('z'))
註:indexOf()函數在判斷數組是否包含某個元素時有兩個小不足
第一個是它會返回-1和元素的位置來表示是否包含,在定位方面是沒問題,就是不夠語義化。
另一個問題是不能判斷是否有NaN的元素。
const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN] console.log(arr.indexOf(NaN))
方法2:使用includes()函數
includes()函數可以用來偵測數組中是否包含某個值
includes()函數除了不能定位外,解決了indexOf的上述的兩個問題。它直接回傳true或false表示是否包含元素,對NaN一樣能有有效。
const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN] console.log(arr.includes('c')) console.log(arr.includes('z')) console.log(arr.includes(NaN))