Нуждался в том, чтобы приказать такой array, чтобы различие между Вашими элементами (númericos) они имели самое меньшее различие по отношению к определенной стоимости.
Эдж. Если стоимости 10:
let arr = [2,4,23,33];
Мне нужно, чтобы это осталось так:
[4,2,23,33]
Потому что
10 - 4 = 6; 10 - 2 = 8; 23 - 10 = 13; 33 - 10 = 23;
Спасибо с уже
Стараясь упрощать немного c¦digo:
function diffSort(value, arr){
return arr.sort((x, y) => Math.abs(x-value)>Math.abs(y-value));
}
console.log(diffSort(10, [2,66,4,33,6,23,99,9.5,55]));
Ну, pensé 5 минут и resolv¦-. Posteo, если он подает им
function ordenar(value, arr) {
return arr.sort(function(x, y) {
let difx = Math.abs(parseFloat(x) - value);
let dify = Math.abs(parseFloat(y) - value);
if (difx < dify) return -1;
if (difx == dify) return 0;
return 1;
});
}
let array = [2, 4, 23, 33];
console.log(ordenar(10, array));
function diffSort(n,...arr){
var f = 0, max = arr[0].length, na = parseInt(n, 10), sorted = [], torever = 0,
fn = [];
for(;f<max;f++){
var index = 0, actual = arr[0][f];
if(actual > na) torever++;
while(n-actual < (na-sorted[sorted.length-1-index])) {index++;}
sorted.splice(sorted.length-index,0 , actual);
}
for(var i=0;i<torever;i++){
fn.unshift(sorted[i]);
}
var b = sorted.concat(fn);
b.splice(0,torever)
return b;
}
console.log(diffSort(10, [2,66,4,33,6,23,99,9.5,55]))
11
;-)... Хорошая стратегия состоит в том, чтобы использовать Math.abs (), как respondió автор вопроса.
– Mariano
03.11.2017, 12:12
>
одним-
и obtendrá s тот же результат в ordenació n. – Asier Villanueva 03.11.2017, 15:42