需求:现有一个数组assetContent,如果assetId相同,则对应的amount、drawNumber字段相加:
assetContent: [
{assetId:"3003174",expireDay:30,amount:10,name:"数字资产专属代金券",assetUnit:"张",belongType:0,drawNumber:0}
{assetId:"3003189",expireDay:53,amount:20,name:"40元贵金属代金券",assetUnit:"张",belongType:0,drawNumber:0}
{assetId:"3003174",expireDay:30,amount:20,name:"数字资产专属代金券",assetUnit:"张",belongType:0,drawNumber:0}
]
let arrList=[];
let arr=[]
assetContent.forEach((item,index)=>{
arrList.push(item.assetId)
arrList=[...new Set(arrList)]
})
arrList.map((item2,index2)=>{
let obj={
assetId:'',
name:'',
expireDay:'',
amount:0,
drawNumber:0,
usedNumber:0,
};
assetContent.map((item1,index1)=>{
if(item2==item1.assetId){
obj.name=item1.name
obj.expireDay=item1.expireDay
obj.amount+=item1.amount
obj.drawNumber+=item1.drawNumber
obj.usedNumber+=item1.usedNumber
}
})
arr.push(obj)
})
网友评论