Страницы

Поиск по вопросам

понедельник, 24 декабря 2018 г.

Сортировка числового массива .sort() [дубликат]

На данный вопрос уже ответили: Сортировка в JavaScript 1 ответ Необходимо отсортировать массив на нативном JS. Код:
var inputStr = '235 1 0.9 -5 -98 25 -634.1'; var nArr; function getConverArray(arr) { for (var i = 0; i < arr.length; i++) { arr[i] = +arr[i]; } return arr; } nArr = getConverArray(inputStr.split(' ')); alert(nArr); nArr.sort(); alert(nArr);
.sort() всё равно сортирует массив как символьный, хотя после функции getConverArray() массив становится числовым. В чём проблема?


Ответ

https://www.w3schools.com/jsref/jsref_sort.asp
By default, the sort() method sorts the values as strings in alphabetical and ascending order. По умолчанию, метод sort сортирует значения как строки в алфавитном порядке, по возрастанию.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
The default sort order is according to string Unicode code points.
Про
nArr.sort(function(a, b){ return a-b; });
Вы, скорее всего, знаете.
Пример из Проблемма с сортировкой массива
function median(data) { data.sort((a, b) => a - b); return data; } console.log(median([1, 2, 3, 4, 5])); console.log(median([3, 1, 2, 5, 3])); console.log(median([1, 300, 2, 200, 1])); console.log(median([3, 6, 20, 99, 10, 15]));

Комментариев нет:

Отправить комментарий