Работа над игрой и не могу понять, почему мои функции не работают правильно ..Javascript массив случайных ошибок проверки
Uncaught RangeError: Maximum call stack size exceeded
По моим сведениям один из моих функций есть бесконечный цикл (?)
У меня есть массив, который должен иметь 3 случайные скорости в нем.
var randomSpeeds = new Array();
У меня есть функция сделана ведьма генерировать случайные скорость:
function generateSpeed() {
var randomSpeed = Math.random().toFixed(1) * 5;
if(randomSpeed == 0){
randomSpeed = 1;
}
return randomSpeed;
}
Массив заполняется этой функцией:
function fillSpeedArray() {
for(var i = 0; i < 3; i++) {
var randomSpeed = generateSpeed();
if(speedArrayChecker(randomSpeed) != false) {
randomSpeeds.splice(i, 0, randomSpeed);
} else {
fillSpeedArray();
}
}
}
Функция петли 3 раза, и каждый раз, когда он генерирует случайную скорость и goos через инструкцию if/else для проверки того, получил ли массив уже произвольно сгенерированное число (speedArrayChecker).
speedArrayChecker:
function speedArrayChecker(speed) {
for(speeds in randomSpeeds) {
if(speeds != speed) {
return true;
}
}
return false;
}
Эта последняя функция Goos через массив и, если массив уже идет случайное сгенерированное число, возвращает истину еще ложь.
Функция называется и проверено:
fillSpeedArray();
console.log(randomSpeeds);
По причине я не вижу функция не работает правильно. Спасибо и приветствую.
Да, отлично, эта работа отлично! –