俩数组的循环,对象替换

本文介绍了一种算法,用于处理两个数组之间的匹配与整合操作。首先,通过遍历和比较,确保第一个数组中的特定对象存在于第二个数组中,若不存在则进行删除。接着,将第一个数组中未出现在第二个数组的对象添加进去,同时初始化某些属性值为0。这一过程涉及到了数组操作、对象属性检查以及条件逻辑处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 

/*

    要求:根据arr的temp与arr1下的a数组的temp匹配相同的情况下,要求保留arr1里面对应temp对象的值,其余的删除;如果arr存在的temp对象,arr1没有,则该temp对象添加进入arr1里面的a,并且temp里面对应的属性值为0(除了temp)

*/

var arr = [

    {temp:1,x1:1,x2:2},

    {temp:2,x3:3,x6:6},

    {temp:3,x4:4,x7:7},

    {temp:4,x5:5,x8:8},

]

 

var arr1 = [

    {

        a:[

            {temp:1,x1:1,x2:1},

            {temp:2,x3:1,x6:1},

            {temp:3,x4:1,x7:1},

            {temp:5,x4:1,x7:1},

        ]

    },

    {

        a:[

            {temp:1,x1:1,x2:1},

            {temp:2,x3:1,x6:1},

            {temp:3,x4:1,x7:1},

            {temp:5,x4:1,x7:1},

        ]

    }

]

//逻辑分两步走

// 1  首先是要arr1下的a数组与arr匹配,判断a里面要保留什么对象,删除什么对象

arr1.map(function(item){

    item.a.map(function(json,index){

        var status = false;

        arr.map(function(data){

            if(json.temp == data.temp){

                status = true

            }

        })

        if(!status){

            item.a.splice(index,1)

        }

    })

})

// 2 此时的arr1已经成功匹配arr,有相同交集的存在a里面,第二步是判断arr里面没有的添加进入arr1的a当中,否则不做处理

arr.map(function(item){

    arr1.map(function(json){

        var aaa = false;

        json.a.map(function(data){

            if(item.temp == data.temp){

                aaa = true;

            }

        })

        if(!aaa){

            item.x5 = 0;

            item.x8 = 0

            json.a.push(item)

        }

    })

})

console.log(arr1)

主要是记录,方便以后查看




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值