Javascript для цикла продолжает сбой даже при малом количестве итераций

#javascript

#javascript

Вопрос:

Приведенный ниже код используется для генерации случайного слова.

 function randomInteger(min, max) {
  return Math.floor(Math.random() * (max - min   1))   min;
}

function randomWord(length=6){
    string = '';
    vowels = ["a","e","i","o","u"];  
    consonants = [
        'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 
        'n', 'p', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'
    ];  

    max = length / 2;
    for (i = 1; i <= max; i  )
    {
        string  = consonants[randomInteger(0,19)];
        string  = vowels[randomInteger(0,4)];
    }
    return string;
}
 

Исходя из этого, я использую следующую функцию для создания предложения.

 function randomSentence(tot=10){
    returner = '';
    for(j=0;j<tot;j  ){
        returner = returner   " "   randomWord();
    }
    return returner;
}

postContent = [];
for(a=0;a<10;a  ){
    postContent.push(randomSentence(5));
}
 

Значение i<10 — это то, что вызывает сбой программы, похоже, оно работает, когда значение установлено 5 равным .

Комментарии:

1. Всегда (и я имею в виду «всегда») объявляйте свои переменные с let помощью или const или var , чтобы охватить их соответствующим образом. В противном случае они являются глобальными и приводят к странным ошибкам , подобным той, с которой вы столкнулись. Вы используете одно и то же i в разных циклах. Редактировать Ну, теперь вы отредактировали свой вопрос для использования a во втором цикле, но, тем не менее, вы действительно должны это сделать

2. @blex Мой плохой, это исправлено! Спасибо

3. Какую ошибку вы получаете при сбое?