跳到主要内容

orderBy()

function orderBy<T>(
collection,
iteratees?,
orders?): T[];

Defined in: array/orderBy.ts:22

根据指定的迭代器和排序方向对数组进行排序 支持多字段排序,按迭代器数组顺序依次比较,当字段相等时继续比较下一个字段

Type Parameters

Type ParameterDescription
T数组元素的类型

Parameters

ParameterTypeDefault valueDescription
collectionT[]undefined要排序的数组
iterateesstring[][]用于排序的属性名数组,每个元素为对象属性路径字符串
orders("asc" | "desc")[][]排序方向数组,对应每个迭代器的排序方向,默认为 'asc'

Returns

T[]

排序后的新数组,不修改原数组

Examples

orderBy([{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }], ['age'], ['desc']);
// 返回 [{ name: 'Bob', age: 30 }, { name: 'Alice', age: 25 }](按年龄降序)
orderBy([{ name: 'Alice', age: 25 }, { name: 'Bob', age: 25 }], ['age', 'name'], ['asc', 'asc']);
// 返回 [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 25 }](先按年龄,再按姓名排序)
orderBy([3, 1, 4, 1, 5], [], []);
// 返回 [3, 1, 4, 1, 5](无迭代器时返回原数组副本)
**Note:** nullundefined 值会被视为最小值
**Note:** 使用数组副本进行排序,不修改原数组
**Note:** 当 iteratees 为空数组时,返回原数组的浅拷贝