Javascript 如何通过将项目分组到数组来操作数组

Javascript 如何通过将项目分组到数组来操作数组,javascript,Javascript,假设我有一个数组: let obj = [ { prop: 'a', val: 2 }, { prop: 'a', val: 1 }, { prop: 'b', val: 3 }, { prop: 'b', val: 1 } ] 假设我想为每个现有属性值获取一个数组: let myArr = [ [ { prop: 'a', val: 2 }, { prop: 'a', val: 1 } ] [ { prop: 'b', val: 3 }, { prop

假设我有一个数组:

let obj = [ 
   { prop: 'a', val: 2 },
   { prop: 'a', val: 1 },
   { prop: 'b', val: 3 },
   { prop: 'b', val: 1 }
]
假设我想为每个现有属性值获取一个数组:

let myArr = [ 
   [ { prop: 'a', val: 2 }, { prop: 'a', val: 1 } ]
   [ { prop: 'b', val: 3 }, { prop: 'b', val: 1 } ]
]

通过使用高阶函数,您将如何做到这一点?

您可以通过查找具有相同道具的对象并更新值来减少对象

function sumProps(arr) {
    const sum = arr.reduce((ac,cv) => {
        if (ac[cv] === undefined) ac[cv.prop] = ac[cv.prop] = cv.val;
        else ac[cv.prop] += cv.val;
    }, {});

    const res = [];
    for (const p in sum) {
        res.push({ prop:p, sum:sum[p] });
    }
    return res;
}
var数组=[{prop:'a',val:2},{prop:'a',val:1},{prop:'b',val:3},{prop:'b',val:1}], 结果=array.reducer,o=>{ var temp=r.find{prop}=>prop==o.prop; 中频温度{ 温度val+=o.val; }否则{ r、 赋值{},o; } 返回r }, [];
console.logresult;这个函数式编程怎么样?我想映射、减少和过滤函数式编程函数,我将使用for循环编辑tagi制作的tagi,我一点都不喜欢。为什么我会被否决小野代码,只是一些期望。