在前端开发中,经常需要判断一个数组是否包含某个值。以前我们可能会使用 indexOf 方法来实现,但是在 ES7 中,新增了 Array.prototype.includes 方法,可以更加方便地实现该功能。
基本语法
Array.prototype.includes 方法的基本语法如下:
array.includes(searchElement[, fromIndex])
其中,
array
:要进行判断的数组。searchElement
:要查找的元素。fromIndex
:开始搜索的位置,默认为 0。
方法将返回一个布尔值,表示是否包含该元素。
例子
现在有一个数组 arr:
const arr = [3, 6, 7, 12, 15];
我们可以通过下面的代码来判断该数组是否包含某个值:
console.log(arr.includes(6)); // true console.log(arr.includes(9)); // false
深入理解
除了基本语法外,下面我们来深入理解一下该方法的实际使用。
searchElement 为引用类型
当 searchElement 为引用类型值时,includes 方法会判断数组中是否有一个元素的地址与 searchElement 相同。例如:
const arr = [{ id: 1 }, { id: 2 }, { id: 3 }]; console.log(arr.includes({ id: 1 })); // false const obj = { id: 1 }; console.log(arr.includes(obj)); // true
fromIndex 参数
我们可以通过 fromIndex 参数来指定开始搜索的位置。例如:
const arr = [3, 6, 7, 12, 15]; console.log(arr.includes(6, 2)); // false console.log(arr.includes(7, 2)); // true
总结
使用 ES7 的 Array.prototype.includes 方法可以更加方便地判断一个数组是否包含某个值。在使用时,需要注意 searchElement 的类型和 fromIndex 参数的使用。
代码示例:
const arr = [{ id: 1 }, { id: 2 }, { id: 3 }]; console.log(arr.includes({ id: 1 })); // false const obj = { id: 1 }; console.log(arr.includes(obj)); // true
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c5bf8cd20074f47a482599