sortBy
根据给定的 criteria
对对象数组进行排序。
- 如果提供的是键,它将根据这些键的值对对象进行排序。
- 如果提供的是函数,它将根据这些函数返回的值进行排序。
该函数返回按升序排列的对象数组。如果两个对象在当前标准下具有相同的值,它将使用下一个标准来确定它们的顺序。
签名
typescript
function sortBy<T extends object>(arr: T[], criteria: Array<((item: T) => unknown) | keyof T>): T[];
参数
arr
(T[]
): 要排序的对象数组。criteria
(Array<keyof T | ((item: T) => unknown)>
): 排序标准。可以是对象键的数组或返回用于排序的值的函数数组。
返回值
(T[]
): 按升序排序的对象数组。
示例
typescript
const users = [
{ user: 'foo', age: 24 },
{ user: 'bar', age: 7 },
{ user: 'foo ', age: 8 },
{ user: 'bar ', age: 29 },
];
sortBy(users, ['user', 'age']);
sortBy(users, [obj => obj.user, obj => obj.age]);
// 结果为:
// [
// { user : 'bar', age: 7 },
// { user : 'bar', age: 29 },
// { user : 'foo', age: 8 },
// { user : 'foo', age: 24 },
// ]