js将数组中对象某个值相同的去重合并到一起(另一种方法,易理解)

示例先根据数组对象中rsnm的合并,再根据x_type合并,其实就是写了两遍相同的函数过程

examineClass(arr) {
      var map = {},
        result = [];
      for (var i = 0; i < arr.length; i++) {
        var ai = arr[i];
        if (!map[ai.rsnm]) {
          result.push({
            rsnm: ai.rsnm,
            addvnm: ai.addvnm,
            reward: ai.reward,
            data: [ai],
          });
          map[ai.rsnm] = ai;
        } else {
          for (var j = 0; j < result.length; j++) {
            var dj = result[j];
            if (dj.rsnm == ai.rsnm) {
              dj.data.push(ai);
              break;
            }
          }
        }
      }

      result.forEach((item) => {
        var map1 = {},
          result1 = [];
        console.log(item.data);
        for (var i = 0; i < item.data.length; i++) {
          var ai = item.data[i];
          if (!map1[ai.x_type]) {
            result1.push({
              x_type: ai.x_type,
              data: [ai],
            });
            map1[ai.x_type] = ai;
          } else {
            for (var j = 0; j < result1.length; j++) {
              var dj = result1[j];
              if (dj.x_type == ai.x_type) {
                dj.data.push(ai);
                break;
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值