orderBy()
function orderBy<T>(
collection,
iteratees?,
orders?): T[];
Defined in: array/orderBy.ts:22
根据指定的迭代器和排序方向对数组进行排序 支持多字段排序,按迭代器数组顺序依次比较,当字段相等时继续比较下一个字段
Type Parameters
| Type Parameter | Description |
|---|---|
T | 数组元素的类型 |
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
collection | T[] | undefined | 要排序的数组 |
iteratees | string[] | [] | 用于排序的属性名数组,每个元素为对象属性路径字符串 |
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:** null 和 undefined 值会被视为最小值
**Note:** 使用数组副本进行排序,不修改原数组
**Note:** 当 iteratees 为空数组时,返回原数组的浅拷贝