縹緲止盈
2018-12-27 22:12:02
fcc上的一道題,題目和代碼如圖:這題的標(biāo)準(zhǔn)解法我是知道的,就是想試試不把a(bǔ)rguments對象的內(nèi)容轉(zhuǎn)成數(shù)組能不能解。查了下arguments和filter的用法感覺好像沒什么問題?可是輸出的結(jié)果還是[1, 2, 3, 1, 2, 3],問下各位老哥為什么a的值沒變呢?
1 回答

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊
第二個arguments獲取的是filter回調(diào)函數(shù)的參數(shù)類數(shù)組,只有val一個參數(shù),長度永遠(yuǎn)為1。
解決方案是建立一個對外層函數(shù)arguments的引用
function destroyer() {
var argu = arguments
var arr1 = argu[0];
var arr2 = arr1.filter(function(val) {
var a = true;
for (var i = 1; i < argu.length; i++) {
if (val === argu[i]) {
a = false;
}
}
return a;
})
return arr2
}
console.log(destroyer([1, 2, 3, 1, 2, 3], 1, 2, 3))
添加回答
舉報
0/150
提交
取消