📜  array.contains javascript (1)

📅  最后修改于: 2023-12-03 15:13:29.669000             🧑  作者: Mango

JavaScript 中的 Array 包含元素的检查

在 JavaScript 中,Array 是一种用来存储一组有序元素的数据结构。我们可以使用 Array.includes() 方法来检查一个数组是否包含某个元素。该方法会返回一个布尔值,表示数组中是否包含该元素。但如果你的 JavaScript 环境不支持 Array.includes(),也可以使用 Array.indexOf() 方法来实现相同的效果。

语法
Array.includes()

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()

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(),具体使用哪个方法可以根据自己的需求来决定。需要注意的是,对于包含对象的数组,两种方法的行为略有不同。