whats the number of times the letter д appears in:
q: почему while нагружает страницу js в цикле проходит некоторая проверка, но до нужной пора break игнорируется, в чем причина?
var one_words = [كِتَابُ, مِحْبَرَةُ, لَوْحُ, قَلَمُ, كُرَّاسُ, نَشَّافَة, مِسْطَرَة];
random_num = math.floor(math.random() * one_words.length);
let i;

while (one_words[random_num] == ) {
        if (i > 30) {
            break;
        } else {
            random_num = math.floor(math.random() * one_words.length);
            i++;
        }
    }

это отрывок кода, и в другом месте элементам массива приравнивается пустая строка
иное решение:
while (one_words[random_num] ==  && i < 100)

но в любом случае интересно, почему предыдущий код не получался?

a: ваш код не работает впринципе. посмотрите на условие, которое вы поставили для работы цикла while one_words[random_num] == , оно не может сработать так как в массиве one_words не содержится пустых строк.
если вы хотите что бы цикл работал, его условие должно возвращать true.


// скопировал сюда ваш код, добавив вывод в консоль
// и заменил значения в массиве на латинские символы
// сейчас вам должно быть видно
// что условие while не срабатывает
// а значение i остается неизменным 

const one_words = [one, two, three, four, five]  

let random_num = math.floor(math.random() * one_words.length)

let i = 0

while (one_words[random_num] === ) {

        console.log(in while)

        if (i > 30) {
            break
        } else {
            random_num = math.floor(math.random() * one_words.length)
            i++
        }
}

console.log(i)


так же, для того что бы избежать возможных ошибок, всегда старитесь использовать проверку на строгое соответствие вместо приведения к типу.

a: let i;

тут в i будет undefined, а потом
i++

будет nan и поэтому break не пройдет.
нужно инициализировать i так
let i = 0;


user
In the text, there are 23 "д"s.
assistant