【发布时间】:2017-06-07 16:14:23
【问题描述】:
请帮助我编写更好的代码。
假设我有一个如下的 JavaScript 数组:
var students = [
{ firstname: "stud1", lastname: "stud2", marks: "60" },
{ firstname: "stud3", lastname: "stud4", marks: "30" },
{ firstname: "stud5", lastname: "stud6", marks: "70" },
{ firstname: "stud7", lastname: "stud8", marks: "55" },
{ firstname: "stud9", lastname: "stud10", marks: "20" },
];
在页面上我想分两部分显示数据,1)获得分数 >= 40 的学生 2)获得分数
通过使用 for 循环,我很容易地完成了这个功能,如下所示。
var data = "";var data1 = "";
for (var i = 0; i < students.length; i++ )
{
if(students.marks >= 40){
data += = students.firstname + " " + students.lastname; //actual data in html div tag
....
}else{
data1 += = students.firstname + " " + students.lastname;
}
}
我想通过使用 map、reduce、foreach、filter 等 JavaScript 方法来实现相同的功能(想提高我的 JavaScript 知识)
不确切知道哪种方法对此类功能有用。
使用了map方法并尝试显示数据,但是每个对象/数组的末尾都有一个尾随。
谁能帮助/指导我编写正确的代码?
【问题讨论】:
-
您喜欢只使用一个循环还是更多?
标签: javascript arrays dictionary filter reduce