這是我必須做的:使用篩選器方法從數組中移除元素。
將會爲您提供一個初始陣列(在 驅逐艦函數的第一個參數),然後是一個或多個參數。從初始數組中刪除所有與這些 參數值相同的 元素。
我的代碼:
function destroyer(arr) {
for(i=1; i < arguments.length; i++) {
x = arr.filter(filterer);
}
function filterer(val) {
return val !== arguments[i];
}
return x;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
但它不能正常工作,並返回初始數組沒有過濾的一個。我的錯誤在哪裏?
變種X = arr.slice(0)效果會更好,以便不改變輸入數組 – pranavjindal999
@PranavJindal'filter'是一個純粹的功能,並且不改變它被要求的陣列。使用'slice'是不必要的,只會將另一個數組創建添加到此方法的開銷中。 – gyre
@gyre過濾器不會但'''x = x.filter(filterer(arguments [i])); ''' – pranavjindal999