ECMAScript 2019 中的 Array.prototype.indexOf 和 Array.prototype.lastIndexOf 方法详解

在 JavaScript 中,Array 类型是非常常用的一种数据结构,它提供了很多操作数组的方法,其中包括了 Array.prototype.indexOf 和 Array.prototype.lastIndexOf 方法。这两个方法都是用来查找数组中某个元素的位置,并返回其在数组中的索引值。本文将详细介绍这两个方法的使用方式和注意事项。

Array.prototype.indexOf 方法

Array.prototype.indexOf 方法用于查找数组中第一个与指定值相等的元素,并返回其在数组中的索引值。如果数组中不存在该元素,则返回 -1。

  • searchElement:要查找的元素值。
  • fromIndex:可选参数,表示从哪个索引位置开始查找。默认值为 0。

下面是一个简单的示例代码:

在上面的代码中,我们创建了一个包含 4 个元素的数组,然后使用 indexOf 方法查找了元素值为 'orange' 的元素。由于该元素在数组中的索引值为 2,因此返回值为 2。

需要注意的是,indexOf 方法是从数组的开头开始查找的。如果数组中存在多个与指定元素相等的元素,它只会返回第一个元素的索引值。如果要查找所有符合条件的元素,可以使用 for 循环或 Array.prototype.filter 方法。

另外,indexOf 方法还可以接收一个可选的参数 fromIndex,表示从哪个索引位置开始查找。如果省略该参数,则从数组的开头开始查找。如果指定的索引值大于等于数组的长度,则返回 -1。

在上面的代码中,我们创建了一个包含 5 个元素的数组,并查找了其中元素值为 'orange' 的元素。由于该元素在数组中出现了两次,因此第一次查找到的索引值为 2,第二次查找到的索引值为 4,这是因为第二次查找是从索引值为 3 的位置开始的。

Array.prototype.lastIndexOf 方法

Array.prototype.lastIndexOf 方法与 indexOf 方法类似,不同之处在于它是从数组的末尾开始查找元素。它会从数组的最后一个元素开始向前遍历,直到找到第一个与指定元素相等的元素为止,并返回其在数组中的索引值。如果数组中不存在该元素,则返回 -1。

  • searchElement:要查找的元素值。
  • fromIndex:可选参数,表示从哪个索引位置开始查找。默认值为数组的长度减 1。

下面是一个简单的示例代码:

在上面的代码中,我们创建了一个包含 4 个元素的数组,然后使用 lastIndexOf 方法查找了元素值为 'orange' 的元素。由于该元素在数组中的索引值为 2,因此返回值为 2。

需要注意的是,lastIndexOf 方法是从数组的末尾开始查找的。如果数组中存在多个与指定元素相等的元素,它只会返回最后一个元素的索引值。如果要查找所有符合条件的元素,可以使用 for 循环或 Array.prototype.filter 方法。

另外,lastIndexOf 方法也可以接收一个可选的参数 fromIndex,表示从哪个索引位置开始查找。如果省略该参数,则从数组的末尾开始查找。如果指定的索引值小于等于 0,则从数组的开头开始查找。

在上面的代码中,我们创建了一个包含 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


纠错
反馈