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


相关文章
|
5月前
|
语音技术
语音识别-----列表的常用操作课后练习讲解,用变量追加,取出第一个,取出最后一个,下标位置,列表的循环遍历,下标+1的写法,len下标可以小于这个值,while循环对index循环的遍历
语音识别-----列表的常用操作课后练习讲解,用变量追加,取出第一个,取出最后一个,下标位置,列表的循环遍历,下标+1的写法,len下标可以小于这个值,while循环对index循环的遍历
|
5月前
|
前端开发
let array = [{id:‘001‘,name:‘小新‘,age:5},{ id:‘002‘,name:‘小葵‘]这样数据如何遍历,拿到其中一个值,数组中装对象如何获取其中一个固定的值
let array = [{id:‘001‘,name:‘小新‘,age:5},{ id:‘002‘,name:‘小葵‘]这样数据如何遍历,拿到其中一个值,数组中装对象如何获取其中一个固定的值
|
7月前
|
算法 测试技术 C#
【哈希映射】【 哈希集合】 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
【哈希映射】【 哈希集合】 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
|
7月前
|
前端开发 数据库
两个map中的数据,按照相同键,将所对应的值相加方法
两个map中的数据,按照相同键,将所对应的值相加方法
|
7月前
|
JSON 算法 前端开发
2722. 根据 ID 合并两个数组
2722. 根据 ID 合并两个数组
42 0
|
7月前
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
69 0
删除数组中重复出现的值
删除数组中重复出现的值
75 0
|
JavaScript
js随机从数组内取出一个值(整理)
js随机从数组内取出一个值(整理)
|
前端开发
根据key值过滤形成新得数组
根据key值过滤形成新得数组
73 0
|
存储 Java
从数组当做map的key引发的思考
从数组当做map的key引发的思考
154 0