lodash-sortby,如何将数字排序晚于字母
lodash sortby, how to sort numbers later than letters?
我有一个包含数字和字符串的列表。
列表中的每个元素看起来都像:
{
'name': 'Bob',
'number': 234234
}
但是,可能缺少姓名或号码。
在我的排序中,我做了这样的事情:
_.sortBy(list, function(element) {
if (element.name) {
return element.name;
}
else {
return element.number;
}
});
这对前面有数字的元素和没有数字的元素进行排序。如何让lodash取消数字的优先级?
我想你的意思很简单,_.sortBy按升序排列?
sortBy_.sortBy(list,iteratee,[context])返回(稳定)排序的列表副本,按运行结果升序排列值。iteratee也可以是要排序的属性(例如长度)。
http://underscorejs.org/#sortBy
因此,当您对element.name
进行优先级排序时,它会出现在排序的最后
您可以简单地反转生成的阵列
results = results.reverse();
或者,更改if/else
语句的顺序。
_.sortBy
正在使用返回值创建具有criteria
属性的对象。criteria
属性是要与array.sort
函数和ad hoc
(不可配置的comparer
函数)进行比较的值。
我想你可以破解这个,返回一个值,比如:
_.sortBy(list, function(element) {
if (element.name) {
return "@" + element.name;
}
else {
return element.number;
}
};
听起来拆分列表、对部分进行排序并重新组合可能更容易,即:
_(data) //begin chain
.filter("name") //the entries with names
.sortBy("name") //sorted by name
.concat(_.sortBy(_.reject(data, "name"), "number")) //followed by the entries without name, sorted by number
.value(); //end chain
相关文章:
- 如何在javascript中通过rtl字母表对列表进行排序和分组
- JQuery根据连字符前的首字母对列表进行排序
- 如何使d3.js树布局按字母顺序对节点进行排序
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- 如何按字母等级对考试成绩进行排序
- 等效于mRender,基于Jquery Datatables中的底层数据进行排序
- 按字母顺序对输入单选框进行排序
- 表格排序器:对捷克字母进行排序
- 如何对字母数字字符串值进行排序
- Javascript - 先排序字母,然后排序数字
- 相对于他在jQuery/Js中的一个内部数据对数组进行排序
- 如何按一个仍保持字母顺序的特性值(另一个特性值)对关联数组进行排序
- 按字母顺序、数字顺序和特殊字符对字符串数组进行排序
- 是否可以在JqGrid中按字母顺序以外的其他方式对组进行排序
- 如何按字母顺序对select2(jQuery插件)选项进行排序
- 通过自定义字母javascript对字符串进行排序
- 用于提示输入和输出的JavaScript按字母顺序排序
- 将CSS应用于正确放置的字母
- lodash-sortby,如何将数字排序晚于字母
- Jquery,排序&为字母数字值分组