javascript 对后台返回的数据进行分类,筛选一样的数据

模拟后台返回的数据为:

var arr = [
    {personName:"张三",id:1,age:12,gender:"male"},
    {personName:"张三",id:1,age:12,gender:"male"},
    {personName:"张三",id:1,age:12,gender:"male"},
    {personName:"李四",id:1,age:12,gender:"male"},
    {personName:"李四",id:1,age:12,gender:"male"},
    {personName:"李四",id:1,age:12,gender:"male"},
    {personName:"王五",id:1,age:12,gender:"male"},
    {personName:"王五",id:1,age:12,gender:"male"},
    {personName:"王五",id:1,age:12,gender:"male"}
]

对数据处理的方法为:(对personName来进行分类)

var nList = [];
for (var i = 0; i < arr.length; i++) {
    if (nList.length == 0) {
        nList.push({
            personName: arr[i].personName,
            data: [arr[i]]
        })
    } else {
        var index = nList.findIndex(item => item.personName == arr[i].personName);
        if (index >= 0) {
            nList[index].data.push(arr[i])
        } else {
            nList.push({
                personName: arr[i].personName,
                data: [arr[i]]
            })
        }
    }
}

对数据处理后的结构为:

**

**[
    {
        "personName":"张三",
        "data":[
            {
                "personName":"张三",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"张三",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"张三",
                "id":1,
                "age":12,
                "gender":"male"
            }
        ]
    },
    {
        "personName":"李四",
        "data":[
            {
                "personName":"李四",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"李四",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"李四",
                "id":1,
                "age":12,
                "gender":"male"
            }
        ]
    },
    {
        "personName":"王五",
        "data":[
            {
                "personName":"王五",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"王五",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"王五",
                "id":1,
                "age":12,
                "gender":"male"
            }
        ]
    }
]**

**
原文出自https://www.cnblogs.com/wjs0509/p/11177513.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值