美文网首页
数组分类

数组分类

作者: JsLin_ | 来源:发表于2019-04-19 15:55 被阅读0次

js对象数组(JSON) 根据某个共同字段 分组

希望的是将下面的对象数组:

[
    {"id":"1001","name":"值1","value":"111"},
    {"id":"1001","name":"值1","value":"11111"},
    {"id":"1002","name":"值2","value":"25462"},
    {"id":"1002","name":"值2","value":"23131"},
    {"id":"1002","name":"值2","value":"2315432"},
    {"id":"1003","name":"值3","value":"333333"}
]

根据相同id字段分组,转换成下面这种形式:

[
    {
        "id": "1001",
        "name": "值1",
        "data": [
            {"id": "1001", "name": "值1", "value": "111"},
            { "id": "1001", "name": "值1", "value": "11111"}
        ]
    },
    {
        "id": "1002",
        "name": "值2",
        "data": [
            { "id": "1002",  "name": "值2", "value": "25462" },
            { "id": "1002", "name": "值2", "value": "23131"},
            {"id": "1002", "name": "值2","value": "2315432" }
        ]
    },
    {
        "id": "1003",
        "name": "值3",
        "data": [
            {"id": "1003", "name": "值3", "value": "333333" }
        ]
    }
]

做法:

var arr = [
    {"id":"1001","name":"值1","value":"111"},
    {"id":"1001","name":"值1","value":"11111"},
    {"id":"1002","name":"值2","value":"25462"},
    {"id":"1002","name":"值2","value":"23131"},
    {"id":"1002","name":"值2","value":"2315432"},
    {"id":"1003","name":"值3","value":"333333"}
];

var map = {},
    dest = [];
for(var i = 0; i < arr.length; i++){
    var ai = arr[i];
    if(!map[ai.id]){
        dest.push({
            id: ai.id,
            name: ai.name,
            data: [ai]
        });
        map[ai.id] = ai;
    }else{
        for(var j = 0; j < dest.length; j++){
            var dj = dest[j];
            if(dj.id == ai.id){
                dj.data.push(ai);
                break;
            }
        }
    }
}

console.log(dest);

相关文章

  • iOS 打印字典和数组中的中文

    创建数组的分类 创建字典的分类

  • 004——数组

    数组定义 数组分类 从键值关系 从数组层次来分 循环

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • js工具类 持续更新

    实现数组groupBy分类功能

  • PHP中的数组

    数组分类 索引数组 关联数组 数组遍历 传值遍历 传址遍历 数组函数 指针操作函数 current($array)...

  • Shell 数组与数学运算

    参考书籍 Linux shell 脚本攻略 数组和关联数组 数组分类普通数组:只能使用整数作为数组索引。关联数组:...

  • 数组分类

    js对象数组(JSON) 根据某个共同字段 分组 希望的是将下面的对象数组: 根据相同id字段分组,转换成下面这种...

  • Runtime字典转模型

    用一个分类实现字典转模型,分类头文件如下: 如果模型的属性有字典数组,想要将该字典数组转换成模型数组,那么在该模型...

  • shell-数组

    1. 数组 1.1 什么是shell数组 1.2 数组的分类 1.3 数组的赋值方式 数组赋值方式: 一次赋多个值...

  • 进阶篇/Chapter 1

    数组定义 $arr = array();表示创建一个空数组,并把创建的空数组赋值给变量$arr。 数组分类 PHP...

网友评论

      本文标题:数组分类

      本文链接:https://www.haomeiwen.com/subject/jqfcgqtx.html