Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.04.2016, 09:18
Новичок на форуме
Отправить личное сообщение для Zab_Juba Посмотреть профиль Найти все сообщения от Zab_Juba
 
Регистрация: 30.04.2016
Сообщений: 4

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


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);
Ответить с цитированием
  #2 (permalink)  
Старый 30.04.2016, 10:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Есть уже готовая функция сортировки, но без аргумента она преобразует данные в строки и сравнивать будет как строки. Для того чтобы числа сортировать нужна пользовательская функция.
Готовая функция, это sort, вы пользовательскую функцию назвали зарезервированным именем, чего делать нельзя.

var massiv = [21, 12, 4, 5, 34, 11, 23, 96, 1, 3];
alert(massiv.sort(function(a, b) {return a-b}))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как записать массив в базу мусол. wadim Общие вопросы Javascript 6 09.02.2016 16:59
Почему функция выполняется один раз? Elect Общие вопросы Javascript 3 15.11.2015 21:19
почему не работает функция? sana Общие вопросы Javascript 5 01.04.2015 17:53
почему функция вызывается 2 раза? imedia Элементы интерфейса 2 13.02.2015 14:15
Подскажите пожалуйста как передать массив в функцию serov Элементы интерфейса 3 21.08.2010 19:37