排序方式
给定一个数组 arr 和一个函数 fn,返回一个排序后的数组 sortedArr。你可以假设 fn 只返回数字,并且这些数字决定了 sortedArr 的排序顺序。sortedArr 必须按照 fn 的输出值 升序 排序。
你可以假设对于给定的数组,fn 不会返回重复的数字。
示例 1:
输入:
arr = [5, 4, 1, 2, 3], fn = (x) => x
输出:[1, 2, 3, 4, 5]
解释:fn只是返回传入的数字,因此数组按升序排序。
示例 2:
输入:
arr = [{"x": 1}, {"x": 0}, {"x": -1}], fn = (d) => d.x
输出:[{"x": -1}, {"x": 0}, {"x": 1}]
解释:fn返回"x"键的值,因此数组根据该值排序。
示例 3:
输入:
arr = [[3, 4], [5, 2], [10, 1]], fn = (x) => x[1]
输出:[[10, 1], [5, 2], [3, 4]]
解释:数组按照索引为1处的数字升序排序。
提示:
- arr是一个有效的- JSON数组
- fn是一个函数,返回一个数字
- 1 <= arr.length <= 5 * 105
type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue };
type Fn = (value: JSONValue) => number
function sortBy(arr: JSONValue[], fn: Fn): JSONValue[] {
	// sort 升序排序
    return arr.sort((a, b) => fn(a) - fn(b));
}
普通的 sort 升序排序






![P9241 [蓝桥杯 2023 省 B] 飞机降落](https://img-blog.csdnimg.cn/direct/b8ed5acc53f24dbca9e75161203159aa.png)













