这是牛客网上的一道题~
题意:对数组排序,顺序是按照数组的平均值,即按照一个元素和平均值相减的绝对值的大小来排序。。。本例按这个绝对值递增排序
解题思想:先求出这个数组的平均值,如果 a<b,那么 a-avg<b-avg,这样,abs(a-avg) 小的就排到了前面,即离 avg 近的元素自然就排到了前面。
var arr = [-,,,,,]
function sortA(array){
var sum = ;
for(var i = ;i < array.length;i++)
sum += array[i];
var avg = sum / array.length;
array.sort((a,b) => Math.abs(a-avg)-Math.abs(b-avg));
console.log(avg);
console.log(array);
} //for test
sortA(arr);
//3.8333333333333335
// Array [4, 3, 6, 1, -1, 10]
按照绝对值递增的顺序就排好了~