当我尝试在没有 Number() 的情况下运行此代码时,它不起作用。
ar filter = (arr, fn) => {
let filteredArr = [];
for(const i in arr){
if(fn(arr[i], Number(i))) filteredArr.push(arr[i])
}
return filteredArr;
};
我不明白为什么这段代码在没有 Number() 的情况下不起作用,如果索引是某个数字,至少是 0,它是一个整数,那么它应该可以工作...你能帮我吗?我将非常感激。
因为你使用...在:
var filter = (arr, fn) => {
let filteredArr = [];
for(const i in arr){
console.log(typeof i)
if(fn(arr[i], Number(i))) filteredArr.push(arr[i])
}
return filteredArr;
};
此循环用于对象,不建议用于数组。
您可以尝试使用由三个可选表达式组成的循环:
var filter = (arr, fn) => {
let filteredArr = [];
for(var i=0; i<arr.length; i++){
if(fn(arr[i], i)) filteredArr.push(arr[i])
}
return filteredArr;
};