JS数组对象取出指定元素相同的对象组成新数组

本文介绍了一种使用JavaScript处理重复数组元素的方法,通过遍历数组并将数据聚合到对象中,最终转换为所需的数据结构。该方法可以高效地处理大量重复数据,并保持数据的完整性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要处理的数组
arr = [
	 {guid: "BMID0152", name: "北京研发中心", percentage: "1"},
	 {guid: "BMID0154", name: "北京一部研发中心", percentage: "2"},
	 {guid: "BMID0155", name: "北京二部研发中心", percentage: "3"},
	 {guid: "BMID0152", name: "北京研发中心", percentage: "1"},
	 {guid: "BMID0154", name: "北京一部研发中心", percentage: "2"},
	 {guid: "BMID0155", name: "北京二部研发中心", percentage: "3"},
	 {guid: "BMID0152", name: "北京研发中心", percentage: "1"},
	 {guid: "BMID0154", name: "北京一部研发中心", percentage: "2"},
	 {guid: "BMID0155", name: "北京二部研发中心", percentage: "3"}
]
想处理成
[
	{
		name: "北京研发中心",
		data: [1, 1, 1]
	},
	{
		name: "北京一部研发中心",
		data: [2, 2, 2]
	},
	{
		name: "北京二部研发中心",
		data: [3, 3, 3]
	}
]
实现代码
let dataInfo = {}
arr.forEach(item => {
	let { name } = item // name = item.name
	if (!dataInfo[name]) {
		dataInfo[name] = {
			name, // name: name
			data: []
		}
	}
	dataInfo[name].data.push(item.percentage)
})
let result = Object.values(dataInfo)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值