[Easy] 手寫陣列 findIndex
2024年3月8日
💎 加入 E+ 成長計畫 如果你喜歡我們的內容,歡迎加入 E+,獲得更多深入的軟體前後端內容
題目描述
手寫 findIndex
的函式,它會接受三個參數:
- array:要搜索的陣列
- predicate:測試函式,用於判斷元素是否符合所需條件
fromIndex
:搜索的起始索引,如果未指定,則默認為 0
findIndex
函式,會返回陣列中第一個滿足 predicate
函式的元素的索引。如果找不到符合條件的元素,則返回 -1
。
findIndex(array, predicate, [(fromIndex = 0)]);
findIndex([1, 13, 7, 54], (num: number) => num > 10)) // 1
findIndex([1, 13, 7, 54], (num: number) => num > 200)) // -1
本題解答
以下是本題的解答,詳細解題思路可以在 E+ 成長計畫 看到。如果想練習更多題目,推薦可以到 GreatFrontEnd 上練習。
解法
function findIndex(array, predicate, fromIndex = 0) {
const startIndex = fromIndex < 0 ? fromIndex + array.length : fromIndex;
for (let i = startIndex; i < array.length; i++) {
if (predicate(array[i])) {
return i;
}
}
return -1;
}