现在有
let arr = [ {age: 10, price: 20}, {age: 20, price: 30}, {age: 30, price: 30} ] 然后对age和price求和。 想得到 {age: 60, price: 80} 这样的对象。 如果age和price属性名动态的又该如何写呢??
已解决
悬赏分:70
- 解决时间 2021-11-26 15:08
点赞 0反对 0举报 0
收藏 0
分享 0
回答5
最佳
-
function add(arr){ let obj = {} arr.map(value=>{ Object.keys(value).map(key=>{ if(obj[key]){ obj[key]+=value[key] }else{ obj[key]=value[key] } }) }) return obj }
支持 0 反对 0 举报2021-11-26 03:01
-
const sum = (...columns) => arr => arr.reduce((a, b) => columns.reduce((c, d) => ({...c, [d]: a[d] + b[d]}), {}))
支持 0 反对 0 举报2021-11-26 04:39
-
function getSum(key1, key2, ary) { return ary.reduce((pre, next) => { pre[key1] = (pre[key1] || 0) + (next[key1] || 0) pre[key2] = (pre[key2] || 0) + (next[key2] || 0) return pre }, {}) } let res = getSum('age', 'price', arr)
支持 0 反对 0 举报2021-11-26 05:07
-
function sum(arr) { return arr.reduce((res, v) => { return Object.keys(v).reduce((res, k) => { res[k] = (res[k] || 0) + v[k]; return res; }, res); }, {}) }
支持 0 反对 0 举报2021-11-26 05:43
-
const merge = data => { return data.reduce((acc, cur) => { const obj = {...acc} for(let attr in cur) { if(cur.hasOwnProperty(attr)) { if(obj[attr]) { obj[attr] += cur[attr] }else { obj[attr] = cur[attr] } } } return obj }, {}) } merge(arr)
支持 0 反对 0 举报2021-11-26 06:14