JS實現JSON數組合並和去重


var a=[{"id":"1001","name":"張三","age":"18","address":"北京市朝陽區","school":"朝陽區第二中學"},{"id":"1002","name":"李四","age":"15","address":"北京市海淀區","school":"海淀區第二中學"},{"id":"1003","name":"王五","age":"16","address":"北京市石景山區","school":"石景山區第二中學"}];
            var b=[{"id":"1004","name":"小毛","age":"18","address":"北京市朝陽區","school":"朝陽區第二中學"},{"id":"1003","name":"王五","age":"16","address":"北京市石景山區","school":"石景山區第二中學"}]
            var c = a.concat(b); //合並數組
            var temp = {}; //存放id
            var result = []; //新數組
            c.map((item,index) => {
                if(!temp[item.id]){
                    result.push(item);
                    temp[item.id] = true;
                }
            })
            document.getElementById('txt').innerHTML = JSON.stringify(result)
有兩個json數組demo1和demo2

var demo1 = [{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"}];

var demo2 = [{"id": 2, "name": "牛肉"},{"id": 3,"name": "魚肉"},{ "id": 4,"name":"雞肉"}];
數組合並
var totalDemo = demo1.concat(demo2);
console.log(totalDemo); //[{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"},{"id": 2, "name": "牛肉"},{"id": 3,"name": "魚肉"},{ "id": 4,"name":"雞肉"}]
數組合並用的是concat方法,它可以用於字符串之間的連接和數組之間的連接。

數組去重
上面已經得到合並的數組 totalDemo ,去掉name屬性是一樣的json對象

var temp = {};   //用於name判斷重復
var result = [];  //最后的新數組

totalDemo.map(function (item, index) {
    if(!temp[item.name]){
        result.push(item);
        temp[item.name] = true;
    }
});

console.log(result);//[{"id": 0, "name": "牛肉"},{"id": 1,"name": "羊肉"},{"id": 3,"name": "魚肉"},{ "id": 4,"name":"雞肉"}];
map方法:按照原始數組元素順序依次處理元素。可以在map方法里面輸入console.log(item)打印看下,它會把數組中的對象依次打印出來。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM