我正在开发一个功能,可以在中期评分等级下对我的列表进行排序。所以我尝试了ff代码:
if(score === 'Midterm Score'){
_.each(students, function(elem, index, list){
_.sortBy(students, function(elem){
console.log(elem.midterm_score);
});
});
}
所以使用elem.midterm_score
它没有通过中期得分对我的列表进行排序,如此处所示。
我希望它是90,80,70等等。知道我错过了什么吗?请帮忙!
答案 0 :(得分:2)
您正在以错误的方式使用sortBy方法。请在docs
中查看// First of all we need students
var students = [
{name: 'a', midterm_score: 60},
{name: 'b', midterm_score: 70},
{name: 'c', midterm_score: 40}
];
// Sort by midterm score and assign to students variable
students = _.sortBy(students, 'midterm_score');
// print array in each loop
_.each(students, function(el) {
console.log(el);
});
答案 1 :(得分:0)
根据docs:
返回(稳定)排序的列表副本,按升序排列 通过iteratee运行每个值的结果。 iteratee也可能 是要排序的属性的字符串名称(例如,长度)。
可能是你过于复杂的事情。要根据midterm_score
等属性的值对列表进行排序,只需将其作为第二个参数传递,如下所示:
sortBy(students, 'midterm_score');
使用iteree
函数用于数据转换,这在这里似乎没有必要。在这样的函数中,您需要显式地使用return
命令返回转换后的结果(根据文档)。