数组把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>


相关文章
|
21天前
|
算法 测试技术 C#
【哈希映射】【 哈希集合】 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
【哈希映射】【 哈希集合】 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
|
2月前
|
前端开发 数据库
两个map中的数据,按照相同键,将所对应的值相加方法
两个map中的数据,按照相同键,将所对应的值相加方法
14 0
|
3月前
|
JSON 算法 前端开发
2722. 根据 ID 合并两个数组
2722. 根据 ID 合并两个数组
15 0
|
5月前
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
26 0
|
7月前
删除数组中重复出现的值
删除数组中重复出现的值
47 0
|
9月前
|
前端开发
根据key值过滤形成新得数组
根据key值过滤形成新得数组
50 0
|
存储 Java
从数组当做map的key引发的思考
从数组当做map的key引发的思考
117 0
|
算法 Go
算法练习第十题——寻找重复数(不修改数组)
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。
for...of 返回索引和值
for...of 返回索引和值
数组对象相同的值去重
let hash = {} this.list= this.list.reduce((preVal, curVal) => { hash[curVal.
666 0