vue 将后台返回的对象数组根据某个字段组成新的对象数组?

AI 概述
vue 如何将后台返回的对象数组根据某个字段组成新的对象数组,这也是我在最近项目中遇到的问题,特此整理一下,方便自己后期学习,也希望对需要的小伙伴提供帮助。 假如后台返回给我们如下数据结构: var list = [ { "id": 1, "modes": "CHARTBAR_1", }, { "id": 2, ...

vue 如何将后台返回的对象数组根据某个字段组成新的对象数组,这也是我在最近项目中遇到的问题,特此整理一下,方便自己后期学习,也希望对需要的小伙伴提供帮助。

假如后台返回给我们如下数据结构:

var list = [
    {
        "id": 1,
        "modes": "CHARTBAR_1",
    },
    {
        "id": 2,
        "modes": "CHARTBAR_1",
    },
    {
        "id": 3,
        "modes": "CHARTBAR_2",
    },
    {
        "id": 4,
        "modes": "CHARTBAR_2",
    },
    {
        "id": 5,
        "modes": "CHARTBAR_3",
    },
    {
        "id": 6,
        "modes": "CHARTBAR_4",
    },
    {
        "id": 7,
        "modes": "CHARTBAR_4",
    },
    {
        "id": 8,
        "modes": "CHARTBAR_1",
    },
    {
        "id": 9,
        "modes": "CHARTBAR_1",
    },
    {
        "id": 10,
        "modes": "CHARTBAR_1",
    },
]

然后,我们要让上面的数据根据 modes 字段重新组合成新的对象数组,比如整合成下面这样:

[{
    "modes": "CHARTBAR_1",
    "list": [{
        "id": 1,
	"modes": "CHARTBAR_1"
    }, {
	"id": 2,
	"modes": "CHARTBAR_1"
    }, {
	"id": 8,
	"modes": "CHARTBAR_1"
    }, {
	"id": 9,
	"modes": "CHARTBAR_1"
    }, {
	"id": 10,
	"modes": "CHARTBAR_1"
    }]
}, {
    "modes": "CHARTBAR_2",
    "list": [{
	"id": 3,
	"modes": "CHARTBAR_2"
    }, {
	"id": 4,
	"modes": "CHARTBAR_2"
    }]
}, {
    "modes": "CHARTBAR_3",
    "list": [{
	"id": 5,
	"modes": "CHARTBAR_3"
    }]
}, {
    "modes": "CHARTBAR_4",
    "list": [{
	"id": 6,
	"modes": "CHARTBAR_4"
    }, {
	"id": 7,
	"modes": "CHARTBAR_4"
    }]
}]

实现方法:

function getListGroupBy(list, key) {
    var keysArr = list.map(item=>item[key])
    var keys = [...new Set(keysArr)]
    var newList = keys.map(item=> {
        return {
            [key]: item,
            list: list.filter(i=>i[key] == item)
        }
    })
    return newList
}

var newList = getListGroupBy(list, 'modes')
console.log(newList)

就是这么简单!

以上关于vue 将后台返回的对象数组根据某个字段组成新的对象数组?的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » vue 将后台返回的对象数组根据某个字段组成新的对象数组?

发表回复