两个对象数组,把其中相同的name的before相加,不同的对象添加到数组里

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>两个对象数组,把其中相同的name的before相加,不同的对象添加到数组里</title>
</head>
<body>
    <script>
     var a=[
        { name: '组织钳', value: 21, before: 1, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 },
        { name: '肠钳', value: 20, before: 3, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 },
        { name: '阑尾钳', value: 19, before: 0, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 },
        { name: '甲状腺钳', value: 18, before: 0, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 },
        { name: '直角钳', value: 17, before: 3, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 }
      ];
      var b=[
        { name: '组织钳', value: 21, before: 1, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 },
        { name: '钢铁夹子', value: 20, before: 3, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 },
        { name: '肠钳', value: 20, before: 3, adding: 0,adding1: 0,adding2: 0,adding3: 0, before2: 0, after: 0, after2: 0 }
      ];

         a.forEach(v=>{
              b.forEach(t=>{
                   if(v.name==t.name){v.before=v.before+t.before;}
              })
         });

         var c=[];

          a.forEach(t=>{
                 c.push(t.name);
          });
          console.log(c);


          b.forEach(t=>{
               if(c.indexOf(t.name)<0){
                    a.push(t);
               }
          });


      console.log(a);
    </script>
</body>
</html>
sometimes the hardest part isn't letting go,but rather start over
原文地址:https://www.cnblogs.com/zhumeiming/p/11459652.html