使用多个参数从数组中删除重复值

时间:2016-04-14 11:10:13

标签: javascript arrays arguments

以下是我要完成的完整说明:

将为您提供一个初始数组(驱逐舰函数中的第一个参数),后跟一个或多个参数。从初始数组中删除与这些参数具有相同值的所有元素。

这是我的解决方案:

function destroyer(arr) {     
  var args = Array.prototype.slice.call(arguments);
  args.slice(0,1);
  return arr.filter(function(elements) {
    return args.indexOf(element) === -1;
  });
}

请记住,可能有任意数量的参数(不只是2或3) 我的解决方案不起作用。我当前的解决方案有什么问题,如何通过解释修复它?

1 个答案:

答案 0 :(得分:1)

您的解决方案几乎正常运作。 问题:

  • args.slice(0,1);不修改数组(无论如何,此方法只返回带有第一个元素的数组)。请改用args.shift()删除第一个元素
  • 过滤器回调中
  • function(elements)应为function(element)

工作解决方案:

function destroyer(arr) {     
  var args = Array.prototype.slice.call(arguments);
  args.shift();
  return arr.filter(function(element) {
    return args.indexOf(element) === -1;
  });
}

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

检查工作demo