我想分別對 a 和 b 求和,然后將它們的結果除以 b/a 。
{"a":10,"b":20,"c":29,"d":0},
{"a":25,"b":0,"c":9.13,"d":11},
{"a":0,"b":15.5,"c":86,"d":0},
{"a":21.2,"b":0,"c":34,"d":0}]
a=20 10 25 0 21 = 76
b=25.25 20 0 15.5 0 = 60.75
b/a = 60.75/76 = 0.799
uj5u.com熱心網友回復:
這應該這樣做:
let elements =[{"a":10,"b":20,"c":29,"d":0},
{"a":25,"b":0,"c":9.13,"d":11},
{"a":0,"b":15.5,"c":86,"d":0},
{"a":21.2,"b":0,"c":34,"d":0}];
let result={}
for (let el of elements){
for (let k in el){
result[k]=(result[k]||0) el[k];
}
}
console.log(result.b / result.a)
uj5u.com熱心網友回復:
let ar = [
{"a":10,"b":20,"c":29,"d":0},
{"a":25,"b":0,"c":9.13,"d":11},
{"a":0,"b":15.5,"c":86,"d":0},
{"a":21.2,"b":0,"c":34,"d":0}
];
const ab = ar.reduce((s,c) => ({a: s.a c.a, b: s.b c.b}), {a: 0, b: 0});
console.log(ab.b / ab.a);
如果您不想使用外部變數,可以使用 reduce。
uj5u.com熱心網友回復:
使用 map 遍歷物件陣列并對沿途的元素求和。
let sumA;
let sumB;
Arr.map((i) => {
sumA = i.a;
sumB = i.b;
});
console.log(sumA)
console.log(sumB)
console.log(sumB/sumA)
uj5u.com熱心網友回復:
var obj = [{"a":10,"b":20,"c":29,"d":0},
{"a":25,"b":0,"c":9.13,"d":11},
{"a":0,"b":15.5,"c":86,"d":0},
{"a":21.2,"b":0,"c":34,"d":0}];
// better practice to use map/reduce
var sum = 0;
for (var i = 0; i < Object.values(obj).length; i ) {
sum = Object.values(obj)[i]["a"];
}
console.log('sum', sum);
var sum2 = 0;
for (var t = 0; t < Object.values(obj).length; t ) {
sum2 = Object.values(obj)[t]["b"];
}
console.log('sum2', sum2);
console.log('divided', sum / sum2);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/454842.html
標籤:javascript
上一篇:當AngularJS中數字框的值發生變化時更改下拉串列的值
下一篇:jquery按slab漲價
