在下划线js中排序
Sorting in Underscore js
我正在开发一种功能,可以根据期中成绩对我的列表进行升序排序。所以我尝试了 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 等等。知道我错过了什么吗?请帮忙!
根据 docs:
Returns a (stably) sorted copy of list, ranked in ascending order by
the results of running each value through iteratee. iteratee may also
be the string name of the property to sort by (eg. length).
可能是你把事情复杂化了。要根据 属性 的值对列表进行排序,例如 midterm_score
,只需将其作为第二个参数传递,例如:
sortBy(students, 'midterm_score');
使用函数作为 iteree
是为了对您的数据进行转换,在这里似乎没有必要。在这样的函数中,您需要明确地使用 return
命令(根据文档)return 转换后的结果。
您以错误的方式使用了 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);
});
我正在开发一种功能,可以根据期中成绩对我的列表进行升序排序。所以我尝试了 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 等等。知道我错过了什么吗?请帮忙!
根据 docs:
Returns a (stably) sorted copy of list, ranked in ascending order by the results of running each value through iteratee. iteratee may also be the string name of the property to sort by (eg. length).
可能是你把事情复杂化了。要根据 属性 的值对列表进行排序,例如 midterm_score
,只需将其作为第二个参数传递,例如:
sortBy(students, 'midterm_score');
使用函数作为 iteree
是为了对您的数据进行转换,在这里似乎没有必要。在这样的函数中,您需要明确地使用 return
命令(根据文档)return 转换后的结果。
您以错误的方式使用了 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);
});