Javascript 我有一个对象数组,每个对象里面都有一个称为分数的键,我需要找到每个分数的总和,并将其放入一个数组中

Javascript 我有一个对象数组,每个对象里面都有一个称为分数的键,我需要找到每个分数的总和,并将其放入一个数组中,javascript,Javascript,我的控制台显示所有分数的总和,但我希望它打印32和35,而不是65。最终的结果是我想把每个总数放入一个数组中 变量peopleArray=[ { 姓名:赫克托·巴尔德斯, 照片:, 分数:[ 5, 1, 4, 4, 5, 1, 2, 5, 4, 1 ] }, { 姓名:泰勒·威廉姆斯, 照片:, 分数:[ 5, 1, 4, 4, 5, 2, 2, 5, 4, 1 ] } ] 设total=0; 对于i=0;iparseInta+parseIntb,0 } console.logtot

我的控制台显示所有分数的总和,但我希望它打印32和35,而不是65。最终的结果是我想把每个总数放入一个数组中

变量peopleArray=[ { 姓名:赫克托·巴尔德斯, 照片:, 分数:[ 5, 1, 4, 4, 5, 1, 2, 5, 4, 1 ] }, { 姓名:泰勒·威廉姆斯, 照片:, 分数:[ 5, 1, 4, 4, 5, 2, 2, 5, 4, 1 ] } ] 设total=0; 对于i=0;i{ 返回i.scores.reducea,b=>parseInta+parseIntb,0 } console.logtotal您可以使用map循环遍历每个peopleArray元素。使用reduce将分数相加

将字符串转换为数字的一个选项是在字符串之前添加+

var peopleArray=[{姓名:赫克托·巴尔德斯,照片:,分数:[5,1,4,4,5,1,2,5,4,1]},{姓名:泰勒·威廉姆斯,照片:,分数:[5,1,4,4,5,2,2,5,4,1]}; var total=peopleArray.mapo=>o.scores.reducec,v=>+c++v; console.logtotal 试试这个

const result = peopleArray.map((value) => {
    return {
        name: value.name,
        score: value.scores.reduce((total, score) => total + Number(score), 0)
    }

})
console.log(result);
试试这个

您需要在第一个循环中移动total,然后只需要在数组中添加一个新的total对象


试试这个,希望对你有帮助

let scoresArr = peopleArray.map(data => {   
return data.scores.reduce((a,b) => parseFloat(a) + parseFloat(b), 0) 
})

console.log(scoresArr)

这太简单了,但我想不起来。谢谢。@TylerWilliams如果它解决了你的问题,请标记为正确答案。它也可以帮助其他人。
let scoresArr = peopleArray.map(data => {   
return data.scores.reduce((a,b) => parseFloat(a) + parseFloat(b), 0) 
})

console.log(scoresArr)