2016-04-14 57 views
1

这些是什么,我试图完成完整的说明:删除重复值从阵列多个参数

将会为您提供一个初始阵列(在驱逐舰函数的第一个参数),接着是一个或更多的论据。从初始数组中删除与这些参数具有相同值的所有元素。

这是解决我:

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)。
我有的解决方案不起作用。我目前的解决方案出了什么问题?如何解决问题?

+0

求职面试? :) –

+0

你可以给样品输入和输出? – gurvinder372

+0

@DmitriPavlutin不是面试。只是为了自身利益的在线培训。 – victoria

回答

1

您的解决方案几乎可行。 的问题是:

  • args.slice(0,1);不修改阵列(反正这方法只返回与第一元件阵列)。使用args.shift()代替删除第一个元素
  • function(elements)应该在function(element)的过滤器回调中。

A工作液:

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