首頁  >  文章  >  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