如何在Javascript中使用映射,减少和过滤箭头功能来计算学生的总成绩?

问题描述 投票:-6回答:1

这是数据

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 = 75E:10 + 22 + 30 = 62

如何使用Java语言中的箭头功能,如MAP,REDUCE和FILTER为每个学生计算单独的总分?

javascript arrow-functions
1个回答
-1
投票

您使用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));

0
投票

使用.map()迭代输入数组,并使用.reduce()计算数组的总和。

© www.soinside.com 2019 - 2024. All rights reserved.