为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript按与数字的最短距离对数组进行排序

Javascript按与数字的最短距离对数组进行排序

慕少森 2022-07-21 21:29:58
我需要以最接近数字的元素应该首先出现的方式对数组元素进行排序,而最远的元素应该排在最后。例如,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);


查看完整回答
反对 回复 2022-07-21
?
眼眸繁星

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))


查看完整回答
反对 回复 2022-07-21
  • 2 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信