• js数组对象相同项合并处理


    平时工作中会经常遇到数据处理,其中数组合并处理也会经常遇到,下面就是数组相同项合并的一种方式:
    1.首先由原始的数组arr数据,
    2.然后创建一个map空对象和一个dest空数组,通过判断map中是否含有某项来判断数组dest是否添加数据,
    3.然后再判断相同项和已有的dest数组内容比较合并;

    代码如下:
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script>
    $(function(){
      var arr = [
        {"id":"1","name":"张三","value":"1245"},
        {"id":"1","name":"张三","value":"1360"},
        {"id":"2","name":"李四","value":"1120"},
        {"id":"2","name":"李四","value":"1362"},
        {"id":"2","name":"李四","value":"1008"},
        {"id":"3","name":"王五","value":"1360"},
        {"id":"4","name":"赵六","value":"1986"},
        {"id":"4","name":"赵六","value":"1240"}
      ];
      var map = {},dest = [];
      for(var i = 0; i < arr.length; i++){
        var ai = arr[i];
        if(!map[ai.id]){
          dest.push({
            id: ai.id,
            name: ai.name,
            value: ai.value
          });
          map[ai.id] = ai;
        }else{
          for(var j = 0; j < dest.length; j++){
            var dj = dest[j];
            if(dj.id == ai.id){
              dj.value=(parseFloat(dj.value) + parseFloat(ai.value)).toString();
              break;
            }
          }
        }
      };
      console.log(dest);
    })
    </script>

    结果如图:

  • 相关阅读:
    每日一题力扣23 链表排序 转数组 再放入
    每日一题力扣24
    每日一题力扣206
    每日一题力扣21 神奇的递归
    每日一题力扣430
    每日一题力扣19
    每日一题力扣445 链表转数组相加两数求和
    每日一题力扣2
    【20211102】有价值的东西,需要时间
    【20211103】连岳摘抄
  • 原文地址:https://www.cnblogs.com/lingdu87/p/9592320.html
Copyright © 2020-2023  润新知