javascript - javascript 中的参数销毁器

标签 javascript filter

我正在尝试使用过滤器删除数组中的元素,例如:

destroyer([1, 2, 3, 1, 2, 3], 2, 3);    // [1,1]
destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3)  // should return [1, 5, 1]

function destroyer(arr) {
  checker = Array.prototype.slice.call(arguments, 1, arguments.length);
  arr.filter(desFilter);

  function desFilter(value) {
    console.log(checker, value, checker.indexOf(value) >= 0);
    return checker.indexOf(value) >= 0;
  }
  console.log(arr);
  return arr;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3); // it would return [1, 2, 3, 1, 2, 3]

代码笔:http://codepen.io/dotku/pen/GqJOjZ

最佳答案

这样使用:

function destroyer(arr) {
  checker = Array.prototype.slice.call(arguments, 1, arguments.length);
  arr = arr.filter(desFilter); // Change here

  function desFilter(value) {
    console.log(checker, value, checker.indexOf(value) >= 0);
    return checker.indexOf(value) >= 0;
  }
  console.log(arr);
  return arr;
}

原因

函数arr.filter()不会更改原始数组,但会返回替换后的数组。所以你需要在返回函数中返回它。在上面的代码中,我将 arr 替换为 arr.filter 的结果。

关于javascript - javascript 中的参数销毁器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37625160/

相关文章:

javascript - node.js mysql LIKE语句用法

javascript - 您最喜欢的 Java Script 所见即所得编辑器组件是什么?

css - 如何从文本中删除 CSS 过滤器样式?

python - 如何在过滤器中使用 "or"

javascript - 了解 Crockford 介绍的高级方法

javascript - 以干净的方式扩展主干 View 和继承选项

javascript - 浅渲染找不到组件

haskell - 尝试在 Haskell 中使用函数组合时出错

objective-c - NSPredicate 对数组进行排序并按 DESC 顺序

javascript - 在javascript中使用reduce或filter计算对象的数量