@Vit13

Работает не совсем корректно, почему перебирает все числа?

Дан массив с числами. Проверьте, что в этом массиве есть число 5. Если есть - выведите 'да', а если нет - выведите 'нет'.

Вот мой код:
===========================================================================================================
let arr = [2, 55, 6, 65, 65, 65, 65, 65, 6, 4, 84, 5];
for(let i = 0; i < arr.length; i++){
if (arr[i] == 5)
document.write('Есть');

else
document.write('Нет');

}
Проблема в том что в браузере отображается такой ответ: НетНетНетНетНетНетНетНетНетНетНетЕсть
А нужно или да или нет
  • Вопрос задан
  • 781 просмотр
Решения вопроса 1
wapster92
@wapster92 Куратор тега JavaScript
Ну так ты в цикл заносишь вывод на каждой итерации. Выноси за цикл.
let arr = [2, 55, 6, 65, 65, 65, 65, 65, 6, 4, 84, 5];
let result = 'Нет';
for(let i = 0; i < arr.length; i++){
  if (arr[i] == 5) result = 'Есть';
}
document.write(result);

Более короткий пример
let arr = [2, 55, 6, 65, 65, 65, 65, 65, 6, 4, 84, 5];
const result = arr.some(n => n === 5);
document.body.textContent = result ? 'Есть' : 'Нет';
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Потому что вы вызываете document.write на каждой итерации цикла
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы