算法: distanceSort(array, target)
输入:一个整数数组 从最小到最大排序 和一个用于测量距离的整数
输出:按与目标的距离排序的数组

示例
distanceSort([-10,-6,3,5], 1)
返回 [3, 5, -6, -10]

最佳答案

这是一种方法。使用 Array.sort 函数

var a = [-10, -6, 3, 5, 99, 76, -100];

function distanceSort(arr, target) {
   return arr.sort(function(a, b) {
      var distance1 = Math.abs(target - a);
      var distance2 = Math.abs(target - b);

      return distance1 == distance2 ? 0 : (distance1 > distance2 ? 1 : -1);
   });
}

console.log(distanceSort(a, 100)); //[99,76,5,3,-6, -10, -100]
console.log(distance(a, -5)); //[-6, -10, 3, 5, 76, -100, 99]

关于javascript - 使用javascript根据元素与给定目标的距离对整数数组进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32899496/

10-11 00:53