首页 > 解决方案 > 如何使用 javascript 中的 map、reduce 和 filter ARROW 函数计算个别学生的总分?

问题描述

这是数据

const mystudents = [
 {id : 1 , name : 'A' , year : 'TE' , marks : [12,15,48]},<BR>
 {id : 2 , name : 'B' , year : 'SE' , marks : [12,25,16]},<BR>
 {id : 3 , name : 'C' , year : 'TE' , marks : [10,25,16]},<BR>
 {id : 4 , name : 'D' , year : 'BE' , marks : [10,20,15]},<BR>
 {id : 5 , name : 'E' , year : 'BE' , marks : [10,22,30]},<BR>
 {id : 6 , name : 'F' , year : 'FE' , marks : [10,8,30]},<BR>
 {id : 7 , name : 'G' , year : 'FE' , marks : [1,20,30]},<BR>
 {id : 8 , name : 'H' , year : 'TE' , marks : [17,30,30]},<BR>
 {id : 9 , name : 'I' , year : 'SE' , marks : [10,2,30]},<BR>
 {id : 10 , name : 'J' , year : 'TE' , marks : [09,20,30]},<BR>
]

想法:
A:12 + 15 + 48 = 75
E:10 + 22 + 30 = 62

如何使用JavaScript 中的MAP、REDUCE 和 FILTER 等箭头函数计算每个学生的个人总分?

标签: javascriptarrow-functions

解决方案


您使用Array.protoype.mapArray.prototype.reduce执行类似的操作

const result = data => {
    return data.map(item => {
        return {
            name: item.name,
            value: item.marks.reduce((a,b) => a+b, 0)
        }
    });
};

const mystudents =
[
{id : 1 , name : 'A' , year : 'TE' , marks : [12,15,48]},
{id : 2 , name : 'B' , year : 'SE' , marks : [12,25,16]},
{id : 3 , name : 'C' , year : 'TE' , marks : [10,25,16]},
{id : 4 , name : 'D' , year : 'BE' , marks : [10,20,15]},
{id : 5 , name : 'E' , year : 'BE' , marks : [10,22,30]},
{id : 6 , name : 'F' , year : 'FE' , marks : [10,8,30]},
{id : 7 , name : 'G' , year : 'FE' , marks : [1,20,30]},
{id : 8 , name : 'H' , year : 'TE' , marks : [17,30,30]},
{id : 9 , name : 'I' , year : 'SE' , marks : [10,2,30]},
{id : 10 , name : 'J' , year : 'TE' , marks : [09,20,30]},
];

console.log(result(mystudents));


推荐阅读