是否可以在不进行迭代的情况下将对象数组的所有duration
值相加?
const data = [
{
duration: 10
any: 'other fields'
},
{
duration: 20
any: 'other fields'
}
]
结果应为'30'。
let result = 0
data.forEach(d => {
result = result + d.duration
})
console.log(result)
答案 0 :(得分:2)
如果没有迭代,你无法做到这一点。 您可以使用array#reduce,它使用迭代。
const data = [
{
duration: 10,
any: 'other fields'
},
{
duration: 20,
any: 'other fields'
}
];
var result = data.reduce(
(sum, obj) => sum + obj['duration']
,0
);
console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
如果没有一些迭代,我就无法获得指定属性的总和。
您可以将Array#reduce
与回调和起始值零使用。
const data = [{ duration: 10, any: 'other fields' }, { duration: 20, any: 'other fields' }];
let result = data.reduce((r, d) => r + d.duration, 0);
console.log(result);