简介
_.orderBy
和 _.sortBy
是 Lodash
库中用于排序数组的两个函数。
区别
_.orderBy
允许你指定一个或多个属性来排序,并为每个属性指定排序方向(升序或降序)。默认所有值为升序排,指定为"desc"
降序,或者指定为"asc"
升序,排序对应值。该方法返回一个新的排序后的数组,不会修改原数组。
_.sortBy
与 _.orderBy
类似,但它默认只支持升序
排序,并且不能直接在排序过程中指定降序。如果需要降序排,需要借助 reverse()
代码
// 引入lodash
import _ from 'lodash';const arr = [{name:'judy',age: 12},{name:'linda',age: 23},{name:'candy',age: 43},{name:'cindy',age: 18},
]// 根据名字排序,使用orderBy, 升序let arr1 = _.orderBy(arr,['name'],'asc');console.log(arr1)// 根据名字排序,使用orderBy, 降序let arr2 = _.orderBy(arr,['name'],'desc');console.log(arr2)// 根据名字排序,使用sortBy 升序let arr3 = _.sortBy(arr,['name']);console.log(arr3)// 根据名字排序,使用sortBy先进性升序排序,然后使用reverse()函数进行反转let arr4 = _.sortBy(arr,['name']).reverse();console.log(arr4)
打印效果
总结
- 如果你需要对数组进行简单的升序排序,并且不需要指定排序的多个方向,那么
_.sortBy
是一个简洁的选择。 - 如果你需要根据多个条件进行排序,或者需要指定排序的方向(升序或降序),那么
_.orderBy
是更好的选择,因为它提供了更高的灵活性
和控制能力
。