js对数组进行分组且赋值给某对象的属性
在项目中遇到匹配规则给某对象,但多选时,得到的数据将会组成为一个数组,则需要给该数组进行分组。
使用接口,得到合集的数组。
this.dataArray = [ {id:"1", codeid:"123", name:"名字1"}, {id:"2", codeid:"123", name:"名字2"}, {id:"3", codeid:"321", name:"名字3"}, {id:"4", codeid:"321", name:"名字4"}, {id:"5", codeid:"1234", name:"名字5"}, ]
this.codeArray = [
{id:"123", codename:"代码1"},
{id:"321", codename:"代码2"},
{id:"1234", codename:"代码3"}
]
将上述数组根据某key值分类,使用该方法,根据codeid分组,并匹配给对应的对象的dataArray属性。
splitArraylist(data, key){ let groups = {} data.forEach((item)=>{ let value = item[key] groups[value] = groups[value] || [] groups[value].push(item) }) return groups }, splitCodeList(){ // 根据codeid给dataArray分组 this.keylist = this.splitArraylist(this.dataArray,"codeid") // 得到的数据为: // this.keylist = [ // "123":[ // {id:"1", codeid:"123", name:"名字1"}, // {id:"2", codeid:"123", name:"名字2"} // ], // "321":[ // {id:"3", codeid:"321", name:"名字3"}, // {id:"4", codeid:"321", name:"名字4"} // ], // "1234":[ // {id:"5", codeid:"1234", name:"名字5"} // ] this.codeArray.forEach((element)=>{ // 根据对象的id在keylist当中取到对应的数组,并赋值给属性 element.dataArray = this.keylist[element.id] }) }
则现在的codelist为:
this.codelist = [{ id:"123", codename:"代码1", dataArray;[ {id:"1", codeid:"123", name:"名字1"}, {id:"2", codeid:"123", name:"名字2"} ] }, { id:"321", codename:"代码2", dataArray;[ {id:"3", codeid:"321", name:"名字3"}, {id:"4", codeid:"321", name:"名字4"} ] }, { id:"1234", codename:"代码3", dataArray;[ {id:"5", codeid:"1234", name:"名字5"} ] } ]}
本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/16281999.html
电话微信:13514280351
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2021-05-17 VUE-MATOMO实现埋点