zoukankan      html  css  js  c++  java
  • 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>

    结果如图:

  • 相关阅读:
    xampp服务器搭建和使用
    使用proxyee-down解决百度云下载限速问题
    iOS开发之多线程技术—GCD篇
    iOS 将视频流(h264)和音频流封装成PS流
    iOS 播放音频文件
    iOS 简单socket连接
    ios获取本机网络IP地址方法
    iOS10适配相关
    iOS设备的尺寸和分辨率
    理解NodeJS
  • 原文地址:https://www.cnblogs.com/lingdu87/p/9592320.html
Copyright © 2011-2022 走看看