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

我需要以最接近数字的元素应该首先出现的方式对数组元素进行排序,而最远的元素应该排在最后。


例如,


let arr = [1,16,14,13,6,7,4,5,3,2,19,20,10,4,6]

let number = 10


resultArray should be [10, 13, 7, 14, 6, 6, 5, 16,4, 4, 3, 2, 19, 1, 20];

提前致谢。


慕少森
浏览 80回答 2
2回答

holdtom

按到 的距离排序number,其中距离是两个数字之间的绝对差:let arr = [1,16,14,13,6,7,4,5,3,2,19,20,10,4,6]let number = 10const distance = (a, t) => Math.abs(t - a);arr.sort((a, b) => distance(a, number) - distance(b, number));console.log(arr);

眼眸繁星

只需.sort()使用Math.abs.let arr = [1, 16, 14, 13, 6, 7, 4, 5, 3, 2, 19, 20, 10, 4, 6]let number = 10let sortByShortestDistance = (arr, number) => arr.sort((a, b) => Math.abs(a - number) - Math.abs(b - number))console.log(sortByShortestDistance(arr, number))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript