當嘗試在JavaScript 數組中定位元素的多個實例(例如“Nano”)時,方法像jQuery.inArray或.indexOf() 一樣,它們只能辨識最後一次出現的情況。
var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];
解決方案如下:
.indexOf() 方法允許指定起始索引,使您能夠循環遍歷數組並精確定位指定值的所有實例。
<code class="javascript">function getAllIndexes(arr, val) { var indexes = [], i = -1; while ((i = arr.indexOf(val, i + 1)) != -1) { indexes.push(i); } return indexes; } var indexes = getAllIndexes(Cars, "Nano");</code>
但是,正如 VisioN 在評論中指出的那樣,簡單的 for 循環提供了更有效率、更簡潔的解決方案:
<code class="javascript">function getAllIndexes(arr, val) { var indexes = [], i; for (i = 0; i < arr.length; i++) { if (arr[i] === val) { indexes.push(i); } } return indexes; }</code>
以上是如何找出 JavaScript 陣列中某個元素的所有出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!