具有绑定值的数组过滤器
Array filter with bind value
晚上好,
我想创建一个函数,该函数将 return 过滤后的数组,不包含作为 arguments
.
传递给此函数的值
这是我为此使用的代码,但它没有按预期 return 过滤数组,但是,如果我 console.log 所有传递给过滤回调函数的参数,它看到它们就像我绑定第 arguments[i]
个元素一样。
这里是代码:
function destroyer(arr) {
for(var i = 1; i < arguments.length; i++){
arr.filter(seeker.bind(null, arguments[i]));
}
return arr;
}
function seeker(arg, value, index, array){
console.log(arg, value, index, array);
return value !== arg;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
这是 console.log 的屏幕截图:
非常感谢您的帮助。
.filter
不会改变原始数组,它 returns 是一个经过任何更改的新数组。您需要将这个新数组分配回 arr
变量。
function destroyer(arr) {
for(var i = 1; i < arguments.length; i++){
arr = arr.filter(seeker.bind(null, arguments[i]));
}
return arr;
}
function seeker(arg, value, index, array){
return value !== arg;
}
console.log(destroyer([1, 2, 3, 1, 2, 3], 2, 3));
晚上好,
我想创建一个函数,该函数将 return 过滤后的数组,不包含作为 arguments
.
这是我为此使用的代码,但它没有按预期 return 过滤数组,但是,如果我 console.log 所有传递给过滤回调函数的参数,它看到它们就像我绑定第 arguments[i]
个元素一样。
这里是代码:
function destroyer(arr) {
for(var i = 1; i < arguments.length; i++){
arr.filter(seeker.bind(null, arguments[i]));
}
return arr;
}
function seeker(arg, value, index, array){
console.log(arg, value, index, array);
return value !== arg;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
这是 console.log 的屏幕截图:
非常感谢您的帮助。
.filter
不会改变原始数组,它 returns 是一个经过任何更改的新数组。您需要将这个新数组分配回 arr
变量。
function destroyer(arr) {
for(var i = 1; i < arguments.length; i++){
arr = arr.filter(seeker.bind(null, arguments[i]));
}
return arr;
}
function seeker(arg, value, index, array){
return value !== arg;
}
console.log(destroyer([1, 2, 3, 1, 2, 3], 2, 3));