Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите, пожалуйста, почему функция не сортирует массив (https://javascript.ru/forum/misc/62796-podskazhite-pozhalujjsta-pochemu-funkciya-ne-sortiruet-massiv.html)

Zab_Juba 30.04.2016 09:18

Подскажите, пожалуйста, почему функция не сортирует массив
 
Подскажите, пожалуйста, в чем проблема. Функция должна сортировать массив по порядку, но что-то идет не так.


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);

laimas 30.04.2016 10:07

Есть уже готовая функция сортировки, но без аргумента она преобразует данные в строки и сравнивать будет как строки. Для того чтобы числа сортировать нужна пользовательская функция.
Готовая функция, это 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.