大佬帮帮忙求和

新手上路,请多包涵

var plan = [{

        arr1: [{
                title: "a",
                value: 1
            },
            {
                title: "b",
                value: 2
            },
            {
                title: "c",
                value: 3
            }
        ],
    },
    {
        arr1: [{
                title: "a",
                value: 1
            },
            {
                title: "b",
                value: 2
            }

        ]
    },
    {
        arr1: [{
                title: "a",
                value: 1
            },
            {
                title: "c",
                value: 3
            }
        ]
    },
    {
        arr1: [{
                title: "d",
                value: 4
            },
            {
                title: "c",
                value: 3
            }
        ]
    }
]

//期望: 
newArr = [
    {title:'a',sum:3},
    {title:'b',sum:4},
    {title:'c',sum:9},
    {title:'d',sum:4},
]
阅读 1.3k
1 个回答
let s = plan.reduce((arr, item) => {  
  item.arr1.forEach(k => {  
    let find = arr.find(k2 => k2.title === k.title)  
    find ? find.sum += k.value : arr.push({title: k.title, sum: k.value})  
  })  
  return arr  
}, [])  
console.log(s)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题