識別數組中某個元素的所有實例的索引是一項常見的程式設計任務。在 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中文網其他相關文章!