js 数组中相同类型的数据合并,并把相应的数据相加


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			let arr = [
				{type:'apple',money:10},
				{type:'apple',money:10},
				{type:'banana',money:10},
				{type:'orange',money:10},
				{type:'orange',money:10},
				{type:'apple',money:10},
			]
			
			// 需要的数据
			// [
			// 	{type: 'apple', money: 30},
			// 	{type: 'banana', money: 10},
			// 	{type: 'orange', money: 20}
			// ]
			
			var nameArr = [...new Set(arr.map(i => i.type))];//名称集合
			let list=[];
			nameArr.forEach(v=>{
				let filterlist = arr.filter(a=>v==a.type);
				list.push(filterlist)
			});
			let outArr=[];
			list.forEach((item,index)=>{
				let moneyAdd = item.reduce((total, g)=> {
					return total + Number(g.money)
				}, 0);
				outArr.push({
					type:nameArr[index],
					money:moneyAdd
				})
			})
			
			console.log('outArr',outArr)
		</script>
	</body>
</html>



猜你喜欢

转载自blog.csdn.net/QQ_Empire/article/details/126032548