2016-03-31 32 views
-4

您將獲得一個初始數組(驅動函數的第一個參數),接着是一個或多個參數。從初始數組中刪除與這些參數具有相同值的所有元素。篝火尋找和摧毀 - Freecodecamp挑戰

我已經這些指令:

  • 破壞者([1,2,3,1,2,3],2,3)應該返回[1,1]。
  • 驅逐艦([1,2,3,5,1,2,3],2,3)應該返回[1,5,1]。
  • 驅逐艦([3,5,1,2,2],2,3,5)應返回[1]。
  • 驅逐艦([2,3,2,3],2,3)應返回[]。
  • 驅逐艦([「tree」,「hamburger」,53],「tree」,53)應該返回[「hamburger」]。

我發現代碼:

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

我的問題:

  1. 你能用英文解釋一下這個代碼,請?
  2. 你可以給以上挑戰的快捷方式代碼?請。
+0

代碼解釋本身,去MDN找出什麼是這些功能做 – thangngoc89

+0

@RayonDabre,我恨這裏downvoters他們becouce了否決,沒有任何有用的評論,我想知道爲什麼downvoters恨我? –

回答

0

我已經使用過濾器函數完成了這個挑戰,不過也建議使用'indexOf'來將數組中的值與要過濾的值進行比較。 ````

function destroyer(arr) { 
    // Remove all the values 
    var temp = []; 
    for (var i = 1; i < arguments.length; i++) { 
     temp.push(arguments[i]); 
     arr = arguments[0].filter(function(value) { 
      return (value !== temp[i - 1]) ; 
     }); 
    } 
    return arr; 
} 
destroyer([1, 2, 3, 1, 2, 3], 2, 3); 

````