findIndex
方法會返回滿足所提供測試函式的第一個元素的索引。
const numbers = [10, 20, 30, 40];
const index = numbers.findIndex(number => number > 25);
console.log(index); // 輸出:2
在這裡,findIndex
返回大於 25 的第一個數字的索引,即 2。
迴圈是根據條件查找索引的另一種方式。以下是如何使用 for
迴圈完成此任務的方法。
const numbers = [10, 20, 30, 40];
let index;
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] > 25) {
index = i;
break;
}
}
console.log(index); // 輸出:2
此迴圈遍歷陣列,直到找到大於 25 的數字,然後中斷並返回索引 2。
map
方法不直接擷取索引,但可以與其他方法結合使用以實現該目的。
const numbers = [10, 20, 30, 40];
const indexes = numbers.map((number, index) => (number > 25 ? index : -1)).filter(index => index !== -1);
console.log(indexes); // 輸出:[2, 3]
在這裡,map
返回一個索引陣列,其中數字大於 25,然後 filter
移除任何不需要的值。
filter
和 reduce
方法也可以用於找到特定的索引。
const numbers = [10, 20, 30, 40];
const indexes = numbers.reduce((acc, number, index) => {
if (number > 25) {
acc.push(index);
}
return acc;
}, []);
console.log(indexes); // 輸出:[2, 3]
此程式碼片段使用 reduce
累積大於 25 的數字的索引,最終得到 [2, 3]。
forEach
方法對每個陣列元素執行一次提供的函式。這也可以用於找到滿足特定條件的元素的索引。
const numbers = [10, 20, 30, 40];
const indexes = [];
numbers.forEach((number, index) => {
if (number > 25) {
indexes.push(index);
}
});
console.log(indexes); // 輸出:[2, 3]
在這裡,forEach
方法遍歷陣列,並將大於 25 的每個數字的索引推入 indexes
陣列,最終得到 [2, 3]。
在陣列中找到特定的索引是許多 JavaScript 操作中的重要任務。有多種方法可供使用,包括 findIndex
、迴圈、map
、filter
、reduce
和 forEach
。了解何時以及如何使用這些方法可以讓您撰寫更高效、更易讀、更具彈性的程式碼。根據您的具體需求和應用程式的情境,您可以選擇最適合您需求的方法。
forEach
方法在舊瀏覽器上相容嗎?
是的,forEach
在大多數現代和舊版瀏覽器中都有廣泛支援,包括 IE9+。findIndex
的優勢是什麼?
findIndex
提供了一種更簡潔和聲明式的方式來找到索引,而迴圈則提供了更多的控制和彈性。&&
、||
等。[JavaScript] 使用html2canvas下載網頁截圖的方法 |
---|
[JavaScript] localStorage的概念及使用方法 |
[Video.js] 如何使用 - 使用JavaScript播放影片 |
[JavaScript] 探索 ES6 類別語法 - 類別宣告、初始化、方法定義、繼承等 |
[JavaScript] 從`<a href>`調用javascript函數 |
CloneCoding
創新從一行代碼開始!