javascript - 如何从初始数组中删除与这些参数具有相同值的所有元素?

标签 javascript

我编写此代码是为了删除所有 23从数组中得到这个结果:

destroyer([1, 2, 3, 1, 2, 3], 2, 3); // returns [1, 1]

但结果是:

destroyer([1, 2, 3, 1, 2, 3], 2, 3); // returns [1, 2, 1, 3]

这是函数代码:

function destroyer(arr) {
  var a = Array.prototype.slice.call(arguments);
  var b = a[0];

  for (var i = 1; i < a.length; i++) {
    if (b.indexOf(a[i]) !== -1) {
      b.splice(a[i], 1);
    }
  }

  return b;
}

console.log(destroyer([1, 2, 3, 1, 2, 3], 2, 3));

最佳答案

您可以使用 .filters 来执行此操作

b.filter(el => !a.includes(el));

查看下面的完整代码:

function destroyer(a, ...b) {
  a = a.filter(el => !b.includes(el));
  console.log(a);
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);

关于javascript - 如何从初始数组中删除与这些参数具有相同值的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48898789/

相关文章:

javascript - 发送 HTML 代码到 gmail

javascript - CRA 中是否有在 URL 末尾添加斜杠的设置?

javascript - 找到选择器并更新

javascript - 从数据绑定(bind)外部引用 knockout 数组并且没有路径知识

javascript - 选择元素的 jQuery .val() 返回文本

javascript - 如何向现有的 html 元素或 div 添加新的数据属性?

javascript - 我们可以直接从 NodeList 中删除节点吗?

javascript - 在 knockout 中通过ajax绑定(bind)选择

javascript - Angular http json 请求问题

javascript - 使用 Ramda 进行函数组合