【ES7(2016)】Array.prototype.includes()


ES 7の前に配列に要素が含まれているかどうかを判断するには、基本的にこのように書くことができます.
let array1 = [1,2,3,4,5]
console.log(array1.find(function(item) {
     
    return item === 2
}))

//   
console.log(array1.filter(function(item) {
     
    return item === 2
}).length > 0)

ES 7によって導入されたArray.prototype.includes()方法は、配列が指定された値を含むかどうかを判断するために使用され、場合によっては、含まれている場合はtrueを返し、そうでない場合はfalseを返す.
基本的な使い方
const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es6')) // true
console.log(arr.includes('es9')) // false

//       ,       ,          searchElement。
const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es7', 1)) // true
console.log(arr.includes('es7', 2)) // false
console.log(arr.includes('es7', -1)) // false
console.log(arr.includes('es7', -2)) // true
indexOf()と比較:
['a', 'b', 'c'].includes('a') //true
['a', 'b', 'c'].indexOf('a') > -1 //true

console.log(arr.indexOf('es7')) // 1
console.log(arr.indexOf('es7') > -1) // true
includesは単純なタイプのデータしか判断できず、複雑なタイプのデータ、例えば対象タイプの配列、二次元配列については判断できない.
const arr = [1, [2, 3], 4]
arr.includes([2, 3]) //false
arr.indexOf([2, 3]) //-1
indexOfincludesは違います.
const demo = [1, NaN, 2, 3]
demo.indexOf(NaN) //-1
demo.includes(NaN) //true

インデックスの場所に関係なく、値が配列に存在するかどうかを知りたい場合はincludes()を使用することをお勧めします.配列内の値の位置を取得するにはindexOfメソッドしか使用できません.