js 数组对象中goods_id相同和并一个对象,把goods_size_id值添加一起

25 篇文章 0 订阅
 //数组对象中goods_id相同和并一个对象,把goods_size_id值添加一起

        let arr = [
            {
                goods_id:1,
                goods_size_id:22,
               
            },
            {
                goods_id:2,
                goods_size_id:23,
               
            },
            {
                goods_id:3,
                goods_size_id:24,
               
            },
            {
                goods_id:1,
                goods_size_id:25,
               
            },
        ]
   
        //处理成这种数据
        let newArr = [
            {  goods_id:1, goods_size_id:[22,25]},
            {  goods_id:2, goods_size_id:23},
            {  goods_id:2, goods_size_id:24},
        ]
         function mergeArrFn(arr) {
            let newArr = [];
            arr.forEach(item => {
                let dataItem = item;
                if (newArr.length > 0) {
                    let filterValue = newArr.filter(v => {
                        return v.goods_id == dataItem.goods_id
                    })
                    if (filterValue.length > 0) {
                        newArr.forEach(n => {
                            if (n.goods_id == filterValue[0].goods_id) {
                                n.goods_size_id = [filterValue[0].goods_size_id, dataItem.goods_size_id]
                            }
                        })
                    } else {
                        newArr.push(dataItem)
                    }
                } else {
                    newArr.push(dataItem)
                }

            })
            return newArr
        }

	const fd = this.mergeArrFn(arr);
	console.log(fd,'fd)
	![在这里插入图片描述](https://img-blog.csdnimg.cn/cc0315c5afea47d39bd36004f166228e.png#pic_center)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值