2016-04-14 87 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