[Easy] 手写阵列 findIndex
2024年3月8日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
题目描述
手写 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;
}