请你编写一个函数,该函数接受一个整数数组参数 arr 和一个过滤函数 fn,并返回一个过滤后元素数量较少或元素数量相等的新数组。 返回的数组应该只包含通过过滤函数 fn(arr[i], i) 计算后为真值的元素。 请你在不使用内置函数 Array.filter 的前提下解决该问题。 示例 1: 输入:arr = [0,10,20,30], fn = function greaterThan10(n) { return n > 10; } 输出: [20,30] 解释: const newArray = filter(arr, fn); // [20, 30] 过滤函数过滤掉不大于 10 的值
时间: 2024-03-10 09:47:28 浏览: 51
使一个函数作为另外一个函数的参数来运行的javascript代码
好的,以下是一个实现该功能的函数:
```
function filter(arr, fn) {
const filteredArr = [];
for (let i = 0; i < arr.length; i++) {
if (fn(arr[i], i)) {
filteredArr.push(arr[i]);
}
}
return filteredArr;
}
```
这个函数接受两个参数:一个整数数组 arr 和一个过滤函数 fn。它遍历数组 arr 中的每个元素,如果 fn(arr[i], i) 的结果为真,则将该元素添加到 filteredArr 中。最后,函数返回 filteredArr。
使用示例:
```
const arr = [0, 10, 20, 30];
function greaterThan10(n) {
return n > 10;
}
const newArray = filter(arr, greaterThan10);
console.log(newArray); // [20, 30]
```
注意,这个函数并没有使用内置函数 Array.filter,而是通过自己的逻辑实现了相同的功能。
阅读全文