我一直在嘗試理解這個功能很長一段時間,但它對我來說沒有意義。該函數的目標是刪除與其他參數號匹配的參數數組中的任何數字。Javascript:請幫我理解這個功能
爲什麼需要對該數組進行切片以使其正常工作?
args.splice(0,1)是多餘的嗎?我刪除它,沒有任何改變。
好像過濾功能做大量的工作,但我看不出它是如何篩選的數字...
function destroyer(arr) {
var args = Array.prototype.slice.call(arguments);
args.splice(0, 1);
return arr.filter(function(element) {
return args.indexOf(element) === -1;
});
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
@Rayon,它是[1,1] –
是的,輸出是沒有額外參數的傳遞數組,如OP所述。在這種情況下,沒有2和3. –
我花了一段時間纔得到你的問題。原因很簡單:來自'args'的第一個參數總是被忽略,因爲'objects'是相等的('==='用於' indexOf')只有當他們被引用.... – Rayon