鍍金池/ 問(wèn)答/HTML/ 為什么這樣就打印不出來(lái)indexOf的值?

為什么這樣就打印不出來(lái)indexOf的值?

function  uniq() {
    var arr=[].slice.call(arguments);
    arr.forEach(function(a){
        console.log(a); //能打印出a
        console.log(arr.indexOf(a));  //只能打印出第一個(gè)元素的index
        if(arr.indexOf(a)!=arr.lastIndexOf(a)){
            arr=arr.splice(arr.indexOf(a),1);
        }
    });
    return arr;
}
uniq([false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]);

試過(guò)用for循環(huán),但是還是沒(méi)有打印出全部的index值,一直只能打印出false的index:0,這是和數(shù)組中的元素有關(guān)嗎,但是我試過(guò)把a(bǔ)rr=[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN],手動(dòng)輸入arr.indexOf(true)是可以打印的啊

回答
編輯回答
情已空

樓主你不妨給你的arguments加上[0]
var arr=[].slice.call(arguments[0]);
再試試

2018年9月16日 07:11