📅  最后修改于: 2023-12-03 15:13:29.669000             🧑  作者: Mango
在 JavaScript 中,Array 是一种用来存储一组有序元素的数据结构。我们可以使用 Array.includes()
方法来检查一个数组是否包含某个元素。该方法会返回一个布尔值,表示数组中是否包含该元素。但如果你的 JavaScript 环境不支持 Array.includes()
,也可以使用 Array.indexOf()
方法来实现相同的效果。
Array.includes(searchElement[, fromIndex])
方法接收两个参数:
searchElement
:要查找的元素。fromIndex
(可选):从该索引开始检索元素。const array1 = [1, 2, 3];
console.log(array1.includes(2)); // true
console.log(array1.includes(4)); // false
Array.indexOf(searchElement[, fromIndex])
方法接收两个参数:
searchElement
:要查找的元素。fromIndex
(可选):从该索引开始检索元素。该方法会返回一个数字,表示 searchElement
在数组中的索引。如果数组中不存在该元素,则返回 -1
。
const array1 = [1, 2, 3];
console.log(array1.indexOf(2)); // 1
console.log(array1.indexOf(4)); // -1
如果要检查的元素是一个对象,两种方法的行为略有不同。
对于 Array.includes()
,它会直接比较对象的引用,如果数组中存在该对象的一个引用,则返回 true
。例如:
const obj = { name: 'Alice' };
const array1 = [obj];
console.log(array1.includes(obj)); // true
console.log(array1.includes({ name: 'Alice' })); // false
对于 Array.indexOf()
,它会使用 ===
运算符比较对象,也就需要数组中存在该对象的完全相同的一个副本,才会返回该对象在数组中的索引。例如:
const obj = { name: 'Alice' };
const array1 = [obj];
console.log(array1.indexOf(obj)); // 0
console.log(array1.indexOf({ name: 'Alice' })); // -1
如果你需要检查一个数组是否包含某个元素,可以使用 Array.includes()
或 Array.indexOf()
,具体使用哪个方法可以根据自己的需求来决定。需要注意的是,对于包含对象的数组,两种方法的行为略有不同。