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

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

Mary-Kate Olsen
发布: 2024-11-01 00:26:02
原创
300 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板