在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 編寫一個函數(shù),它接受兩個或多個數(shù)組,并以原始提供的數(shù)組的順序返回一個新的惟一值數(shù)

編寫一個函數(shù),它接受兩個或多個數(shù)組,并以原始提供的數(shù)組的順序返回一個新的惟一值數(shù)組。

我的思路是這樣的:將所有傳入的數(shù)組拼成一個新的數(shù)組,再對新數(shù)組進行遍歷去重,但是出現(xiàn)了如下的問題:

    function tick(){
        var result=[];
        for(var i=0;i<arguments.length;i++){
            result=result.concat(arguments[i]);
        }
        for(var j=0;j<result.length;j++){
            var index=-1;
            var flag=true;
            while(index=(result.indexOf(result[j],index+1))!==-1){
                if(flag){
                    flag=false;
                    continue;
                }else{//index會變成true,然后隱式轉(zhuǎn)換成1,不知道怎么解決
                    result.splice(index,1);
                }
            }

        }
        return result;
    }
回答
編輯回答
熟稔

應該把
index=(result.indexOf(result[j],index+1))
用括號括起來
不然是把后面的布爾量賦值給index

2017年9月5日 09:33
編輯回答
法克魷

邏輯運算符的優(yōu)先級比賦值運算符高,所以while的條件里是先進行邏輯運算再賦值,所以 index 的值只可能為 true 或者 false,而為 false 時將會退出循環(huán),所以每次讀取 index 的值都為 true。

你要的是先賦值再進行邏輯運算,所以改一下循環(huán)條件就行了:

while((index=result.indexOf(result[j],index+1)) !== -1) {
  // ...
}
2018年2月27日 22:03