首页  >  文章  >  web前端  >  如何查找 JavaScript 数组中某个元素的所有索引?

如何查找 JavaScript 数组中某个元素的所有索引?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-01 00:26:02194浏览

How to Find All Indexes of an Element in a JavaScript Array?

如何获取数组中元素出现的索引

识别数组中某个元素的所有实例的索引是一项常见的编程任务。在 JavaScript 中,数组提供了 .indexOf() 和 .includes() 等方法,但它们仅返回第一个或最后一个出现的位置。要获取所有实例的索引,需要采用不同的方法。

使用循环和 .indexOf()

一种有效的方法涉及使用 .indexOf() 迭代检查元素出现情况。以下函数演示了这种方法:

<code class="js">function getAllIndexes(arr, val) {
  var indexes = [], i = -1;
  while ((i = arr.indexOf(val, i + 1)) != -1) {
    indexes.push(i);
  }
  return indexes;
}</code>

在此函数中,以递增的起始索引重复调用 .indexOf() 方法。每次找到给定值的实例时,相应的索引都会添加到索引数组中。

使用标准 For 循环

另一种有效的方法是简单的 for 循环:

<code class="js">function getAllIndexes(arr, val) {
  var indexes = [], i;
  for (i = 0; i < arr.length; i++) {
    if (arr[i] === val) {
      indexes.push(i);
    }
  }
  return indexes;
}</code>

这个 for 循环迭代数组,将每个元素与指定值进行比较。找到匹配项后,循环将其索引添加到索引数组中。

用法示例

这两种方法都可用于查找元素“Nano”所有出现的索引在数组 Cars 中:

<code class="js">var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];

var indexes = getAllIndexes(Cars, "Nano");</code>

indexes 变量现在将包含一个数组,其中包含 Cars 数组中“Nano”的所有实例的索引: [0, 3, 5].

以上是如何查找 JavaScript 数组中某个元素的所有索引?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn