![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Webtoper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Здравствуйте, сейчас более детально изучаю javascript. Но возник вопрос по массивам. В частности, как сделать так, чтобы массив сортировался после заданного пользователем количества ввода параметров (через prompt). Вообщем, не совсем понял, как представить массив как переменную, которой можно присвоить prompt и затем отсортировать...
Подскажите пожалуйста, что здесь исправить, чтобы пользователь вводил 5 чисел, которые публиковались бы отсортированными по убыванию. Что не так? Спасибо.
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
4 строка лишняя, зачем-то ей перетираете записанное значение.
По хорошему, нужно ДО цикла for определить переменную array как пустой массив, а дальше в цикле его заполнять. А оптом, ПОСЛЕ заполнения в цикле, один раз отсортировать и вывести. ПС: и не нужно ставить пробел между переменной-массивом и квадратными скобками. А вот отступы внутри цикле лучше ставить. И не стоит использовать document.write, лучше использовать консоль или на крайняк alert. Итого, код получается следующий:
|
|||
|
||||
| Webtoper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Спасибо, понятно. Ясно и доступно. Интересный оператор join. Насчет document.write - если не использовать, то как тогда предлагаете вывести на страницу результат?
Сделал document.write с оператором join:
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Лет 10 назад я бы вам этого не посоветовал, но сейчас есть масса других способов, которые куда привлекательней. Самый лучший вариант, имхо, вывод в консоль - console.log('text') - F12 и смотрите на вывод. Альтернатива - alert. Если нужен именно вывод в какое-то место в документе, то innreHTML/appendChild/etc... document.write же есть смысл использовать только для счетчиков каких-нибудь, или динамических подключений скриптов. Здесь можно почитать подробнее почему я так пишу: http://learn.javascript.ru/document-write ПС: пара советов: 1) вы по прежнему ставите лишние (а иногда они могут запутать) пробелы между переменной и символом [, либо между методом и символом ( - лучше так не делать ;) 2) атрибут language у тега script тоже древний, сейчас его никто не использует (если в этом нет прямой необходимости), а вот атрибут type="text/javascript" более желательный. 3) у вас зачем-то переменная i объявлена глобально (без ключевого слова var) - лучше так не делать для служебных переменных, дабы не засорять глобальную область видимости. 4) для приведения типа к числу можно использовать функцию parseInt, а не создавать конструктор Number, потому что это не нужно и медленее (кстати, если уж пользоваться конструктором, то не забывайте ключевое слово new) Вы явно учитесь по старому учебнику. Советую сменить его на более свежий. Почитайте Флэнагана. |
|||
|
||||
| Webtoper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
А как сделать так, чтобы вывод текста на сайты происходил по запросу пользователя (например, как данном случае - после последовательного ввода данных по запросу)? |
|||
|
||||
| Webtoper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Просто стараюсь использовать как можно более простые переменные, чтобы понять логику алгоритмов и функций. Тем не менее, в дальнейшем конечно же планирую использовать более продвинутые операторы (которые в том числе включают в себя даже комплекс функций). |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Вообще честно говоря в вебе мало используется такой логики. Это скорее в паскале Я навскидку не смогу привести ни одного сайта, использующего prompt. Более частое решение - обработка пользовательских форм. Вот вам пример: http://jsfiddle.net/Aliance/vvcqgq38/ (нужно нажать RUN в левом верхнем углу) Все же лучше сразу учиться наиболее правильно - это может и будет сложнее, зато потом качество будет лучше. А то к неправильному подходу быстро привыкаешь и потом сложно переучиться. |
|||
|
||||
| Webtoper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
Спасибо за подсказки. Кстати, я так понял, здесь что for, что while в этом скрипте - не имеет значения?
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
||||
|
||||
| Webtoper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 8.12.2014 Репутация: нет Всего: нет |
символы текста (введенного по запросу пользователем) в виде чисел хочу отсортировать по убыванию и вывести на экран... но не получается... подскажите что не так в коде:
Это сообщение отредактировал(а) Webtoper - 14.12.2014, 22:00 |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Не так то, что вы не хотите видеть данные вам советы и продолжаете писать код горбатых годов.
Пройдитесь по этой хотя бы теме, и перечитайте что я писал по поводу атрибута languane, создания лишних объектов new String/Array. Далее, приведите код в порядок, выставив адекватные пробелы. А еще лучше создайте фиддл (он это сделает за вас) и киньте сюда ссылку. А еще, если у вас новый вопрос - лучше создавать новую тему. Это написан ов правилах форума, если вы их конечно читали. А если старая решена - сделать об этом пометку, нажав вверху темы на "вопрос решен" |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |