在 JavaScript 中,Array 类型是非常常用的一种数据结构,它提供了很多操作数组的方法,其中包括了 Array.prototype.indexOf 和 Array.prototype.lastIndexOf 方法。这两个方法都是用来查找数组中某个元素的位置,并返回其在数组中的索引值。本文将详细介绍这两个方法的使用方式和注意事项。
Array.prototype.indexOf 方法
Array.prototype.indexOf 方法用于查找数组中第一个与指定值相等的元素,并返回其在数组中的索引值。如果数组中不存在该元素,则返回 -1。
arr.indexOf(searchElement[, fromIndex])
searchElement
:要查找的元素值。fromIndex
:可选参数,表示从哪个索引位置开始查找。默认值为 0。
下面是一个简单的示例代码:
const arr = ['apple', 'banana', 'orange', 'pear']; const index = arr.indexOf('orange'); console.log(index); // 2
在上面的代码中,我们创建了一个包含 4 个元素的数组,然后使用 indexOf 方法查找了元素值为 'orange' 的元素。由于该元素在数组中的索引值为 2,因此返回值为 2。
需要注意的是,indexOf 方法是从数组的开头开始查找的。如果数组中存在多个与指定元素相等的元素,它只会返回第一个元素的索引值。如果要查找所有符合条件的元素,可以使用 for 循环或 Array.prototype.filter 方法。
另外,indexOf 方法还可以接收一个可选的参数 fromIndex,表示从哪个索引位置开始查找。如果省略该参数,则从数组的开头开始查找。如果指定的索引值大于等于数组的长度,则返回 -1。
const arr = ['apple', 'banana', 'orange', 'pear', 'orange']; const index1 = arr.indexOf('orange'); const index2 = arr.indexOf('orange', 3); console.log(index1); // 2 console.log(index2); // 4
在上面的代码中,我们创建了一个包含 5 个元素的数组,并查找了其中元素值为 'orange' 的元素。由于该元素在数组中出现了两次,因此第一次查找到的索引值为 2,第二次查找到的索引值为 4,这是因为第二次查找是从索引值为 3 的位置开始的。
Array.prototype.lastIndexOf 方法
Array.prototype.lastIndexOf 方法与 indexOf 方法类似,不同之处在于它是从数组的末尾开始查找元素。它会从数组的最后一个元素开始向前遍历,直到找到第一个与指定元素相等的元素为止,并返回其在数组中的索引值。如果数组中不存在该元素,则返回 -1。
arr.lastIndexOf(searchElement[, fromIndex])
searchElement
:要查找的元素值。fromIndex
:可选参数,表示从哪个索引位置开始查找。默认值为数组的长度减 1。
下面是一个简单的示例代码:
const arr = ['apple', 'banana', 'orange', 'pear']; const index = arr.lastIndexOf('orange'); console.log(index); // 2
在上面的代码中,我们创建了一个包含 4 个元素的数组,然后使用 lastIndexOf 方法查找了元素值为 'orange' 的元素。由于该元素在数组中的索引值为 2,因此返回值为 2。
需要注意的是,lastIndexOf 方法是从数组的末尾开始查找的。如果数组中存在多个与指定元素相等的元素,它只会返回最后一个元素的索引值。如果要查找所有符合条件的元素,可以使用 for 循环或 Array.prototype.filter 方法。
另外,lastIndexOf 方法也可以接收一个可选的参数 fromIndex,表示从哪个索引位置开始查找。如果省略该参数,则从数组的末尾开始查找。如果指定的索引值小于等于 0,则从数组的开头开始查找。
const arr = ['apple', 'banana', 'orange', 'pear', 'orange']; const index1 = arr.lastIndexOf('orange'); const index2 = arr.lastIndexOf('orange', 3); console.log(index1); // 4 console.log(index2); // 2
在上面的代码中,我们创建了一个包含 5 个元素的数组,并查找了其中元素值为 'orange' 的元素。由于该元素在数组中出现了两次,因此第一次查找到的索引值为 4,第二次查找到的索引值为 2,这是因为第二次查找是从索引值为 3 的位置开始的。
总结
Array.prototype.indexOf 和 Array.prototype.lastIndexOf 方法是 JavaScript 中常用的数组查找方法,它们可以帮助我们快速地查找数组中某个元素的位置。需要注意的是,indexOf 方法是从数组的开头开始查找,而 lastIndexOf 方法是从数组的末尾开始查找。如果数组中存在多个与指定元素相等的元素,它们分别会返回第一个和最后一个元素的索引值。如果要查找所有符合条件的元素,可以使用 for 循环或 Array.prototype.filter 方法。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655ded7ed2f5e1655d83899f