识别数组中某个元素的所有实例的索引是一项常见的编程任务。在 JavaScript 中,数组提供了 .indexOf() 和 .includes() 等方法,但它们仅返回第一个或最后一个出现的位置。要获取所有实例的索引,需要采用不同的方法。
一种有效的方法涉及使用 .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 循环:
<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中文网其他相关文章!