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,我一点都不喜欢。为什么我会被否决小野代码,只是一些期望。