带有绑定值的数组过滤器

时间:2015-07-11 23:36:03

标签: javascript arrays filter bind return-value

晚上好,

我想创建一个函数来返回一个过滤的数组,该数组不包含传递给此函数的值arguments

这是我一直在使用的代码,但它不会按预期返回已过滤的数组,但是,如果我将所有传递的参数传递给过滤callbackfn,它会看到它们,因为我确实绑定了{ {1}} - 元素。

这里是代码:

arguments[i]

这是console.logs的截图:

enter image description here

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

.filter不会更改原始数组,它会返回一个包含所做更改的新数组。您需要将此新数组分配回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));
&#13;
&#13;
&#13;