我有不同的对象包含这个属性:
{ products: [{ choosen: "1" }] }
{ products: [{ choosen: "2" }] }
{ products: [{ choosen: "3" }] }
我想对选择的
属性求和,所以在这种情况下目标应该是:6。
我做了什么:
var total= 0;
$.each(objects, function(i, obj){
total+= obj.products.reduce(function(a, b){
return a + b.choosen;
});
});
console.log(total);
这个返回:0[对象对象]
最佳答案
使用 Array#reduce 和解构。还将字符串转换为数字。
const data = [{ products: [{ choosen: "1" }] },
{ products: [{ choosen: "2" }] },
{ products: [{ choosen: "3" }] }]
const res = data.reduce((a,{products})=>{
return a+products.reduce((a2,{choosen})=>a2+Number(choosen), 0);
}, 0);
console.log(res);
备选方案:
const data = [{ products: [{ choosen: "1" }] },
{ products: [{ choosen: "2" }] },
{ products: [{ choosen: "3" }] }]
const res = data
.map(({products})=>products)
.flat()
.reduce((a,{choosen})=>{
return a+Number(choosen);
}, 0);
console.log(res);
关于javascript - 无法对对象的属性求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54653320/