📅  最后修改于: 2023-12-03 14:42:35.103000             🧑  作者: Mango
在 JavaScript 中,数组是一种存储多个值的数据结构。indexOf()
是数组对象的一个内置方法,用于查找指定元素在数组中的第一个匹配项的索引。
语法:
array.indexOf(element, startFrom)
array
:要搜索的数组。element
:要查找的元素。startFrom
(可选):开始搜索的索引位置,默认为 0。indexOf()
返回一个整数,表示指定元素在数组中的索引位置(从 0 开始),如果找不到元素则返回 -1。
该方法使用严格相等(===
)比较元素的值与类型。如果要搜索的元素是一个对象,那么只有当在数组中找到与对象严格相等的引用时,该元素才会被认为是匹配的。
下面是一些使用 indexOf()
方法的示例:
const fruits = ['apple', 'banana', 'orange', 'apple'];
console.log(fruits.indexOf('apple')); // 输出: 0
console.log(fruits.indexOf('orange')); // 输出: 2
console.log(fruits.indexOf('grape')); // 输出: -1
const numbers = [1, 2, 3, 2, 1, 4, 5];
console.log(numbers.indexOf(2)); // 输出: 1
console.log(numbers.indexOf(10)); // 输出: -1
const person = { name: 'John', age: 28 };
const people = [
{ name: 'Mike', age: 25 },
person,
{ name: 'Jane', age: 30 }
];
console.log(people.indexOf(person)); // 输出: 1
console.log(people.indexOf({ name: 'John', age: 28 })); // 输出: -1
上述示例中,indexOf()
方法被用于数组 fruits
和 numbers
,以及一个包含对象的数组 people
。
在 fruits
数组中,'apple'
的第一个匹配项位于索引 0
,'orange'
位于索引 2
。由于 'grape'
不在数组中,所以返回 -1
。
在 numbers
数组中,第一个匹配到的 2
的索引为 1
,而 10
不在数组中,返回 -1
。
people
数组中的第一个对象是 { name: 'Mike', age: 25 }
,第二个元素是指向 person
对象的引用,而第三个元素是 { name: 'Jane', age: 30 }
。因此,使用 indexOf()
方法查找 person
对象时,返回的索引是 1
,而查找一个与之内容相同的新对象时,返回的是 -1
。
indexOf()
方法进行查找。Array.includes()
方法来代替 indexOf()
。以上就是关于 JavaScript 数组方法 indexOf()
的介绍。这个方法在处理数组时非常有用,可以方便地查找元素在数组中的位置。