的任務是:Array.Filter不更新陣列
你將被提供一個初始陣列(在 破壞者函數的第一個參數),隨後是一個或多個參數。從初始數組中刪除所有與這些 參數值相同的 元素。
,同時通過它的工作,我發現了一些Array.filter行爲,我努力理解:
function destroyer(arr) {
for (var i = 1; i<arguments.length; i++){
toDelete = arguments[i];
arr.filter(isItIn);
}
return arr;
}
function isItIn(item, undefined, array){
return item!=toDelete;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
我在這裏的意圖是通過對參數項1+迭代,調用每個時間arr.filter
。 Arr.filter
然後調用isItIn
它檢查當前檢查的項目是否是我正在搜索的項目。但是,arr
正在返回原樣。當我改變isItIn
到:
function isItIn(item, undefined, array){
return item==1;
}
測試,它仍然是不變的,但是console.log
S IN的isItIn
原來的寫作表明它正在正確接收的參數(或者只要我想,以確定至少,
請注意,我已經解決了通過其他途徑的問題,我不是在尋找一個解決問題的辦法,僅僅是在我的初始碼時出現錯誤的解釋。
哦,我...如果你有任何想法,我已經多久在那盯着, – MrB