Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2011, 18:00
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Помогите от сортировать
<script type='text/javascript'>
var a = '49 66 70 67 60 41 56 81 12 24 42 30 33 41 25 41 78'
var b = a.split(' ').sort().reverse().join(' ').split(' ') 
for(i = 0;i<17;i++) 
var c = b[i]
var e = i + ')' + c // 17)12
</script>

Помогите отсортировать данные числа. Чтобы результат выводился так:
1)10 2)5 3) 3 итп
Попробовал сделать так:записываем числа в строку, преобразуем строку в массив, сортируем от большего к меньшему, далее сортируем от меньшего к большему, и опять в массив. После идет цикл, и в нем вся проблема, цикл перебирает все значения, и соответственно выводит последнее значение, но как сделать так, что бы перебрал первый элемент, перенес его в переменную, перебрал 2ой элемент, опять занес?
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2011, 18:58
Интересующийся
Отправить личное сообщение для jazzz13 Посмотреть профиль Найти все сообщения от jazzz13
 
Регистрация: 31.05.2011
Сообщений: 25

Вы перемудрили с массивом. И в цикле у Вас только одно действие происходит - только одна строка, вместо предполагаемых двух. Вот решение:
var a = '49 66 70 67 60 41 56 81 12 24 42 30 33 41 25 41 78';
var b = a.split(' ').sort().reverse();
var mass = [];
for( var i = 0;i<17;i++){ 
  var c = b[i];
  var e = (i+1) + ') ' + c;
  mass.push(e);
}


Пояснение: во многих языках программирования, если после цикла не идут скобки {}, указывающие на тело цикла, то выполняется только следующие одно вырождение:
for(...)
a = 10; //в цикле
b = 20; //не в цикле
c = 30; //не в цикле

Последний раз редактировалось jazzz13, 31.10.2011 в 19:05.
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2011, 19:07
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Спасибо, но уже нашел другой способ =)
var a = '49 66 70 67 60 41 56 81 12 24 42 30 33 41 25 41 78'
var b = a.split(' ').sort().reverse().join(' ').split(' ') 
for(i=1;i<17;i++) {
for(j = 0;j<1;j++) {
var c = b[i]
var e = i + ')' + c 
alert(e)
}
}
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2011, 19:23
Интересующийся
Отправить личное сообщение для jazzz13 Посмотреть профиль Найти все сообщения от jazzz13
 
Регистрация: 31.05.2011
Сообщений: 25

Сообщение от 9xakep Посмотреть сообщение
Спасибо, но уже нашел другой способ =)
Цикл с одной итерации в цикле? Это не есть хорошо, но главное, что бы Вам нравилось )
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2011, 19:29
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Почему не есть хорошо?)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прелоадер (помогите разобраться) xsfd AJAX и COMET 6 16.09.2010 02:30
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Помогите новичку с выпадающим списком interest Элементы интерфейса 5 19.05.2010 13:15
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28