Подскажите, пожалуйста, почему функция не сортирует массив
Подскажите, пожалуйста, в чем проблема. Функция должна сортировать массив по порядку, но что-то идет не так.
var massiv = [21, 12, 4, 5, 34, 11, 23, 96, 1, 3]; function sort(mas) { for( var i = 1; i < massiv.length; i++ ) { for( var j = i - 1; j >= 0; j-- ) { if( mas[i] < mas[j] ) { var k = mas[j]; mas[j] = mas[i]; mas[i] = k; } } } } print(massiv); sort(massiv); print(massiv); |
Есть уже готовая функция сортировки, но без аргумента она преобразует данные в строки и сравнивать будет как строки. Для того чтобы числа сортировать нужна пользовательская функция.
Готовая функция, это sort, вы пользовательскую функцию назвали зарезервированным именем, чего делать нельзя. var massiv = [21, 12, 4, 5, 34, 11, 23, 96, 1, 3]; alert(massiv.sort(function(a, b) {return a-b})) |
Часовой пояс GMT +3, время: 02:44. |