JS陣列去重 – JSON陣列去重

專注的阿熊發表於2019-09-05

前些天遇到了一個問題,後端傳過來一個JSON的資料,然後我這邊需要進行操作,然後就遇到了一個比較難的問題,在多重造作的時候會出現陣列中重複的情況。

 

然後用了下面的方法去把 json裡面的重複資料去除留下一個。

 

先設定一個json資料,裡面有各種重複的資料。

var jsons = [
    {"id":"1","name":"CGL1"},
    {"id":"1","name":"CGL1"},
    {"id":"2","name":"CGL2"},
    {"id":"3","name":"CGL3"},
    {"id":"4","name":"CGL4"},
    {"id":"5","name":"CGL5"},
    {"id":"5","name":"CGL5"},
    {"id":"6","name":"CGL6"},
    {"id":"7","name":"CGL7"},
    {"id":"8","name":"CGL8"},
    {"id":"9","name":"CGL9"},
]

 

然後把重複id的資料進行比較(我這裡只比較id),一樣的id視為重複進行刪除,留下一個

//資料去重方法function repeatNo(jsonSJ) {    //判斷資料的長度
    if (jsonSJ.length > 0){        Array.prototype.removeRepeat = function(){            var res = [this[0]];            for(var i = 1 ; i< this.length; i++){                var repeat = false;                for(var j=0; j<res.length; j++){                    if(this[i].id == res[j].id){
                        repeat = true;
                    }
                }                if(!repeat){
                    res.push(this[i]);
                }
            }            return res;
        };
        arrylist = jsonSJ.removeRepeat();//去重之後的資料
        console.log(arrylist);
    }
};
repeatNo(jsons);

然後你在瀏覽器裡面查蘭最終的資料就發現,重複的部分已經處理然後留下了一個了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2656143/,如需轉載,請註明出處,否則將追究法律責任。

相關文章