Сортировка массивов (ввод через prompt)
Здравствуйте, сейчас более детально изучаю javascript. Но возник вопрос по массивам. В частности, как сделать так, чтобы массив сортировался после заданного пользователем количества ввода параметров (через prompt). Вообщем, не совсем понял, как представить массив как переменную, которой можно присвоить prompt и затем отсортировать...
Подскажите пожалуйста, что здесь исправить, чтобы пользователь вводил 5 чисел, которые публиковались бы отсортированными по убыванию. Что не так? Спасибо. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=window-1251"> </head> <body> <script language="javascript"> for (i=0; i<5; i++) { array [i] = Number(prompt ("Введите число")); var array = [i]; array.sort(function(a, b) { return b - a; }); document.write (array + " ");} </script> </body> </html> |
Цитата:
И массив создается так: var array = []; |
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=window-1251"> </head> <body> <script language="javascript"> array=[] for (i=0; i<5; i++) { array.push(+prompt ("Введите число")) } delete(i) document.write (array.sort(function(a, b){return b-a}).join(" ")); </script> </body> </html> |
krutoy,
ну не будет же сортировать числа ваш код. |
krutoy,
sort() по умолчанию сортирует всё как строки |
рони,
Ну так сортирует же, что значит не будет? |
Цитата:
;[2,1,3].sort(function(x){alert(typeof x)}) |
krutoy,
не видит это вам кажется :stop: |
Цитата:
|
krutoy,
alert([8,11,44,0,5].sort()); Цитата:
|
:write: и reverse ненадо
alert([8,11,44,0,5].sort(function (a,b){return b - a})); |
рони,
Да, похоже на то, исправил, спасибо. |
рони,
А почему так сделано? ЗЫ думаю потому, что так реализация проще. Все обрабатывается по единому алгоритму, если не указано иное. |
Цитата:
Также интересно Вы применили операторы push, delete(i) и join. Кроме того, вопрос - как без параметра Number() решили задачу введения не строчных, а числовых значений в параметре prompt. |
Skriptor,
а главное как он ловко использует charset=window-1251, с каким упорством игнорирует var, зато умеет всунуть ненужный delete и как брутально смотрится сам код, нет никаких гламурных отступов ... мда |
Цитата:
|
Цитата:
for (i=0; i<5; i++) { } alert(i) alert(window["i"]) delete(i) alert(window["i"]) alert(i) for (var i=0; i<5; i++) { } alert(i) alert(window["i"]) delete(i) alert(window["i"]) alert(i) Предлагаешь в функцию оборачивать каждый раз? |
Цитата:
alert(typeof +"10") Так можно приводить к числу, просто короче. |
Цитата:
|
Цитата:
Цитата:
|
krutoy,
Взял да обернул, чо тебе стоит, вот я на раз: ![]() |
Deff,
Смысл в том, что delete там не просто так стоит. Можно и обернуть, да. |
krutoy,
:dance: слишком серъёзен! |
Как представить это в виде функции, которую можно вставить в любую часть документа? Попробовал - не срабатывает... почему? что исправить?
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=window-1251"> </head> <body> <script language="javascript"> function sortirovka (array) { var array = []; for (i=0; i<5; i++) { array [i] = Number(prompt ("Введите число")); } array.sort(function(a, b) { return b - a; }); alert(array.join(', ')); document.write (array.join(', '));} </script> <script language="javascript"> function sortirovka (array) </script> </body> </html> |
Часовой пояс GMT +3, время: 11:04. |