首页 > 解决方案 > 我有一个对象数组,每个对象内部都有一个称为分数的键,我需要找到每个分数的总和并将其推送到一个数组中

问题描述

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

var peopleArray = [
    {
        name: "Hector Valdes",
        photo: "",
        scores: [
            "5", "1", 
            "4", "4", 
            "5", "1", 
            "2", "5", 
            "4", "1" 
        ]
    }, {
        name: "Tyler Williams",
        photo: "",
        scores: [
            "5", "1",
            "4", "4",
            "5", "2",
            "2", "5",
            "4", "1"
        ]
    }
]

let total = 0;

for (i = 0; i < peopleArray.length; i++){
        for(j=0; j < peopleArray[i].scores.length; j++){
            total += Number(peopleArray[i].scores[j]);
            console.log(total);
        };
    };

标签: javascript

解决方案


var peopleArray = [
    {
        name: "Hector Valdes",
        photo: "",
        scores: [
            "5", "1", 
            "4", "4", 
            "5", "1", 
            "2", "5", 
            "4", "1" 
        ]
    }, {
        name: "Tyler Williams",
        photo: "",
        scores: [
            "5", "1",
            "4", "4",
            "5", "2",
            "2", "5",
            "4", "1"
        ]
    }
]

let total = peopleArray.map(i => {
  return i.scores.reduce((a, b) => parseInt(a) + parseInt(b), 0)
})
console.log(total)


推荐阅读