Lotash多列排序依据

2022-03-09 00:00:00 sorting javascript lodash

有一个很好的方法可以根据几个属性对对象数组进行排序:

var data = _.sortBy(array_of_objects, ['type', 'name']);
但是,这仅适用于升序排序。有没有什么方便的方法来定义每列的方向?例如

var data = _.sortBy(array_of_objects, [{'type': 'asc'}, {'name': 'desc'}]);

解决方案

从lodash 3.5.0开始,您可以使用sortByOrder(在v4.3.0中重命名为orderBy):

var data = _.sortByOrder(array_of_objects, ['type','name'], [true, false]);

从3.10.0版开始,您甚至可以使用标准语义进行排序(asc,desc):

var data = _.sortByOrder(array_of_objects, ['type','name'], ['asc', 'desc']);

在Lotash的版本4中,此方法已重命名为orderBy:

var data = _.orderBy(array_of_objects, ['type','name'], ['asc', 'desc']);

相关文章