一个数组多个对象,根据对象相同属性重新组件新数组

在这里插入图片描述

json结构如下:

var stu_list = [
    {name:'lili',uid:123,exam_id:234,score:12},
    {name:'lili2',uid:321,exam_id:234,score:12},
    {name:'lili',uid:123,exam_id:231,score:120},
    {name:'lili2',uid:321,exam_id:231,score:12},
    {name:'lili',uid:123,exam_id:232,score:129},
    {name:'lili2',uid:321,exam_id:232,score:12},
    {name:'lili3',uid:09,exam_id:232,score:12},
    {name:'lili3',uid:09,exam_id:234,score:12},
    {name:'lili3',uid:09,exam_id:231,score:12},
]

var sub_list = [
    {exam_name:'语文',exam_id:234},
    {exam_name:'数学',exam_id:231},
    {exam_name:'英语',exam_id:232},
]

我们要实现图片展示的效果:

var tb = [];
var narr = [];
for (var i = 0; i < stu_list.length; i++) {
    var n = tb.indexOf(stu_list[i].name);
    if (n==-1) {
        tb.push(stu_list[i].name);
        narr.push({ list : [{score:stu_list[i].score,exam_id:stu_list[i].exam_id}] , name: stu_list[i].name});
    } else {
        narr[n].list.push({score:stu_list[i].score,exam_id:stu_list[i].exam_id});
    }
}

console.log( JSON.stringify(narr) ,tb)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值