数组把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月前
|
前端开发
let array = [{id:‘001‘,name:‘小新‘,age:5},{ id:‘002‘,name:‘小葵‘]这样数据如何遍历,拿到其中一个值,数组中装对象如何获取其中一个固定的值
let array = [{id:‘001‘,name:‘小新‘,age:5},{ id:‘002‘,name:‘小葵‘]这样数据如何遍历,拿到其中一个值,数组中装对象如何获取其中一个固定的值
数组筛选,将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10元素选出来,放入新数组,声明一个新的数组用于存放新数据newArr,遍历原来的旧数组,找到大于10的元素,依次追加新数组
数组筛选,将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10元素选出来,放入新数组,声明一个新的数组用于存放新数据newArr,遍历原来的旧数组,找到大于10的元素,依次追加新数组
|
7月前
|
前端开发 数据库
两个map中的数据,按照相同键,将所对应的值相加方法
两个map中的数据,按照相同键,将所对应的值相加方法
|
JSON 数据格式
JSON转数组后,筛选分组并输出,判断键值键值是否存在补0
JSON转数组后,筛选分组并输出,判断键值键值是否存在补0
65 0
|
7月前
|
JSON 算法 前端开发
2722. 根据 ID 合并两个数组
2722. 根据 ID 合并两个数组
43 0
|
7月前
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
判断两个不重复的list集合是否相等 只比较元素值 不比较顺序
71 0
删除数组中重复出现的值
删除数组中重复出现的值
75 0
|
前端开发
根据key值过滤形成新得数组
根据key值过滤形成新得数组
75 0
|
存储 Java
从数组当做map的key引发的思考
从数组当做map的key引发的思考
155 0
|
算法 Go
算法练习第十题——寻找重复数(不修改数组)
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。