我需要以最接近数字的元素应该首先出现的方式对数组元素进行排序,而最远的元素应该排在最后。例如,let arr = [1,16,14,13,6,7,4,5,3,2,19,20,10,4,6]let number = 10resultArray should be [10, 13, 7, 14, 6, 6, 5, 16,4, 4, 3, 2, 19, 1, 20];提前致谢。
2 回答
holdtom
TA贡献1805条经验 获得超10个赞
按到 的距离排序number,其中距离是两个数字之间的绝对差:
let arr = [1,16,14,13,6,7,4,5,3,2,19,20,10,4,6]
let number = 10
const distance = (a, t) => Math.abs(t - a);
arr.sort((a, b) => distance(a, number) - distance(b, number));
console.log(arr);
眼眸繁星
TA贡献1873条经验 获得超9个赞
只需.sort()使用Math.abs.
let arr = [1, 16, 14, 13, 6, 7, 4, 5, 3, 2, 19, 20, 10, 4, 6]
let number = 10
let sortByShortestDistance = (arr, number) => arr.sort((a, b) => Math.abs(a - number) - Math.abs(b - number))
console.log(sortByShortestDistance(arr, number))
添加回答
举报
0/150
提交
取消