JavaScript

JS数组去重 – JSON数组去重

前些天遇到了一个问题,后端传过来一个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);

然后你在浏览器里面查兰最终的数据就发现,重复的部分已经处理然后留下了一个了。

2 条留言

去留言

留下留言

请友善交流,评论可能需要审核后显示。