数据转换:将数组对象中某个值相同的对象合并为一个新的对象

这篇博客探讨了如何使用JavaScript将具有相同值的对象在数组中合并成一个新对象。通过实例展示了如何有效地处理和整合重复数据。

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

原数据:
在这里插入图片描述
转换为:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    let beforeData=[
        { name: "tony", id: "1", age: "20" },
        { name: "jack", id: "2", age: "21" },
        { name: "tony", id: "3", age: "50" },
        { name: "jack", id: "4", age: "10" },
        { name: "mark", id: "5", age: "22" },
        { name: "mark", id: "6", age: "40" }
      ]
    let tempArr=[],afterData=[]
    for(let i =0;i<beforeData.length;i++){
      // console.log(beforeData[i])
      console.log(tempArr.indexOf(beforeData[i].name))
      //检查tempArr是否存在beforeData的name值,为-1不存在
      if(tempArr.indexOf(beforeData[i].name)==-1){
        //不存在此name,因此加入数据
        afterData.push({
          name:beforeData[i].name,
          data:[beforeData[i]]
        })
        //同时tempArr加入相应的name值
        tempArr.push(beforeData[i].name)
      }else{
        //tempArr存在name值
        for(let j=0;j<afterData.length;j++){
          // console.log(afterData[i])
          if(afterData[j].name==beforeData[i].name){
            afterData[j].data.push(beforeData[i])
            break
          }
        }
      }
    }
    console.log(beforeData)
    console.log(afterData)
  </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值