数组嵌套对象,将相同属性去重,对应的某个属性值合并

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按对象的多个属性去重,按对象的某个属性分组

js处理一个数组中包含多个对象,根据对象的一个属性查找到这个对象

JS中 对象数组按某一属性去重 校验是否有重复数据

ES6 数组内对象去重

对象数组根据对象的多个属性值去重示例

对象数组根据对象的多个属性值去重示例