数组嵌套对象,将相同属性去重,对应的某个属性值合并
Posted 笑话如人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组嵌套对象,将相同属性去重,对应的某个属性值合并相关的知识,希望对你有一定的参考价值。
var data = [ { province: 1, index:1}, { province: 2, index:3}, { province: 1, index:3}, { province: 2, index:2} ]
想要得到的格式
{ province: 1, index:4}, { province: 2, index:5}
实现过程
function mergeArr(arr){ var newArr=[]; arr.forEach(item=>{ var dataItem =item if(newArr.length>0){ var filterValue = newArr.filter(v=>{ return v.province == dataItem.province }) if(filterValue.length>0){ newArr.forEach(n=>{ if( n.province ==filterValue[0].province){ n.index = Number(filterValue[0].index) + Number(dataItem.index) } }) }else{ newArr.push(dataItem) } }else{ newArr.push(dataItem) } }) return newArr }
调用
mergeArr(data)
以上是关于数组嵌套对象,将相同属性去重,对应的某个属性值合并的主要内容,如果未能解决你的问题,请参考以下文章
jdk1.8中list按对象的多个属性去重,按对象的某个属性分组