Решение задачки, нигде не могу найти.
Есть у меня задание. Нужно что бы была строка в которую вводишь цифры (например 1,2,3,4 и т.д. можно до 10) можно вводить долго, до тех пор пока не введешь 0. Когда вводишь ноль скрипт останавливается и выдает окно с количеством введенных цифр их общую суму , среднее число, и суму нечетных чисел. Мне бы для начала только количество чисел, а то не получается у меня и не могу найти нигде. Вот код который у меня есть не знаю что дальше писать. Прошу помощи )
<html> <body> <script> do { var n = 1; var n = prompt("Ведите число"); } while (0<n) </script> </body> </html> |
Если не принципиально использование именно prompt, то типа:
<html>
<head>
<title>Untitled</title>
</head>
<body>
<input id="inp" />
<script>
inp=document.getElementById("inp")
inp.oninput=function(){
var all = /\d+/g, isZero=/0/g, str=inp.value
if(isZero.test(str)) alert(str.match(all).length)
}
</script>
</body>
</html>
А с prompt такое вряд ли получится, это блокирующая операция, пока юзер не разблокировал нажатием enter, скрипт не сможет читать данные со ввода, если я не ошибаюсь. |
Mr_ZET,
придумать нечто что будет хранить каждое число |
Цитата:
|
рони,
Я понял, да, если вводить по одному то получится, например:
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script>
arr=[]
isZeroInArr=function(){
var isZero=/0/
arr.forEach(function(el){if(isZero.test(el)||arr.length===10) throw arr.length})
}
try{
while(true){
arr.push(prompt("Enter Num: "))
isZeroInArr()
}
}catch(e){alert(e)}
</script>
</body>
</html>
Я просто подумал, что вводить сразу надо. А так неудобно, как-то, трахаться. Но можно, да. |
Mr_ZET,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<script>
var length = sumOfOddNums = sum = 0;
while (n = +prompt("Введите число")) {
length++;
n % 2 && (sumOfOddNums += n);
sum += n;
}
alert([length,sumOfOddNums,sum, sum/length])
</script>
</body>
</html>
|
Цитата:
можно воспользоваться сриптом от krutoy, только регулярка там будет /\d{1}/g, и когда введут ноль, обрезать его и считать все необходимые параметры. |
| Часовой пояс GMT +3, время: 05:55. |