数组把key相同值,合并value值(整理)

简介: 数组把key相同值,合并value值(整理)

打印值:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>测试</title>
  </head>
  <body>
  </body>
  <script type="text/javascript">
    var res = [
      [{
          "key": "颜色",
          "value": "黑色"
        },
        {
          "key": "容量",
          "value": "32G"
        }
      ],
      [{
          "key": "颜色",
          "value": "黑色"
        },
        {
          "key": "容量",
          "value": "64G"
        }
      ],
      [{
          "key": "颜色",
          "value": "白色"
        },
        {
          "key": "容量",
          "value": "32G"
        }
      ],
      [{
          "key": "颜色",
          "value": "白色"
        },
        {
          "key": "容量",
          "value": "64G"
        }
      ],
    ];
    var arr1 = []; // 存放所有key(去重后的)
    var arr2 = []; // 组合成想要的格式
    for (var i = 0; i < res.length; i++) {
      for (var j = 0; j < res[i].length; j++) {
        if (!arr1.includes(res[i][j].key)) {
          arr1.push(res[i][j].key);
        }
      }
    }
    for (var i = 0; i < arr1.length; i++) {
      var obj = {
        "key": arr1[i],
        "value": []
      };
      arr2.push(obj);
    }
    // 赋值
    for (var i = 0; i < res.length; i++) {
      for (var j = 0; j < res[i].length; j++) {
        for (var k = 0; k < arr2.length; k++) {
          if (res[i][j].key == arr2[k].key) {
            if (!arr2[k].value.includes(res[i][j].value)) {
              arr2[k].value.push(res[i][j].value);
            }
          }
        }
      }
    }
    console.log(res,'整体数据');
    console.log(arr2,'处理后的数据');
  </script>
</html>


相关文章
|
6天前
|
JavaScript 前端开发 索引
如何判断一个值是否在数组内?
如何判断一个值是否在数组内?
|
6天前
【全网最简短代码】筛选出新数组中和旧数组的重复项,并和旧数组合并(往数组追加新的数据对象且去重,合并两个数组不重复数据)
【全网最简短代码】筛选出新数组中和旧数组的重复项,并和旧数组合并(往数组追加新的数据对象且去重,合并两个数组不重复数据)
|
6天前
|
前端开发 数据库
两个map中的数据,按照相同键,将所对应的值相加方法
两个map中的数据,按照相同键,将所对应的值相加方法
17 0
|
6天前
|
JSON 算法 前端开发
2722. 根据 ID 合并两个数组
2722. 根据 ID 合并两个数组
16 0
|
6天前
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
26 0
|
7月前
删除数组中重复出现的值
删除数组中重复出现的值
47 0
|
8月前
|
JavaScript
js随机从数组内取出一个值(整理)
js随机从数组内取出一个值(整理)
|
9月前
|
前端开发
根据key值过滤形成新得数组
根据key值过滤形成新得数组
53 0
|
算法 Go
算法练习第十题——寻找重复数(不修改数组)
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。
数组对象相同的值去重
let hash = {} this.list= this.list.reduce((preVal, curVal) => { hash[curVal.
668 0