Ввод диапазона значений массива с клавиатуры
Добрый день! Возникла проблема. При вводе диапазона значений массива с клавиатуры - значения умножаются на 10 сами по себе. Вывел в консоль некоторые промежуточные значения, увидел, что почему-то происходят ошибки. Но не знаю как их исправить. При вводе диапазона непосредственно в код - всё работает отлично! Вот код для ввода с клавиатуры!
window.onload = function() {
var scores = [];
scores.lenght = prompt("Введите колличество элементов массива", "10");
var min = prompt("Введите минимальное значение элемента массива", -10);
var max = prompt("Введите максимальное значение элемента массива", 10);
function randomInteger(min, max)
{
for(i=0; i<scores.lenght; i++)
{
scores[i] =Math.floor(min + Math.random() * (max + 1 - min));
}
console.log("max+1 = " + max+1);
console.log("1-min = " + (1-min));
console.log("max+1-min = " + (max + 1 - min));
console.log("min+Math.random() = " + min + Math.random());
console.log("max = " + max);
console.log("min = " + min);
console.log(scores);
}
randomInteger(min, max);
}
|
:-?
Цитата:
|
не понял. что вы имели ввиду?
|
Воскобоенко,
добавьте красное как в примере в строки 4, 6, 7 |
спасибо огромное! как называется этот процесс, что вы мне посоветовали? где про него можно почитать? что конкретно он делает? и чем отличается от того, что было у меня ранее?
|
|
|
спасибо! буду изучать
|
отлично! спасибо!
|
рони,
Но почему по прежнему в консоле выводятся неправильные промежуточные результаты? такие как max+1 = 101? Ведь там должно быть 11, потому что 10+1. max=10! Или просто игнорировать это? Объясните, пожалуйста:blink: |
Воскобоенко,
Потому что если приоритет операторов одинаков, то вычисление идет слева направо. Т.е вместо того что бы сложить значения,происходит склеивание со строкой.Вывод: сначала нужно вычислить,а затем склеивать со строкой! console.log("max+1 = " + (max + 1)); Еще примеры:
alert([
'str' + 7 + 7,
7 + 7 + 'str'
]) // 'str77','14str'
|
Воскобоенко,
console.log("max+1 = ", max+1);
console.log("1-min = " , (1-min));
console.log("max+1-min = " , (max + 1 - min));
console.log("min+Math.random() = " , min + Math.random());
console.log("max = " , max);
console.log("min = " , min);
console.log(scores);
|
| Часовой пояс GMT +3, время: 12:28. |