Мне пришлось использовать цикл for, чтобы просмотреть каждый символ в строке, но код не работает должным образом

Вот инструкция к упражнению, которое я должен делать: Начните с подсказки, которая просит пользователя ввести любую строку.

Используя цикл for, просмотрите каждый символ в строке.

Если строка содержит букву A (заглавную или строчную), прервите цикл и выведите на экран приведенное ниже сообщение.

Если в строке нет буквы A, выведите на экран сообщение ниже.

Вот мой код

var text= prompt("Enter any string.")
for (var i = 0; i < text.length; i++) {
    if (text[i] === "A")
    {alert("The string contains the letter A.");
}
     if (text[i] === "a")
    {alert("The string contains the letter A.");
}
 else
      {alert("The string does not contain the letter A.");
}
}

Что вы ожидаете от написанного вами кода? Что он на самом деле делает?

Matthew Jensen 21.03.2022 04:05

Инструкции — это большая подсказка — вы думали, что следовали им?

traktor 21.03.2022 04:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
47
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

EDIT: поскольку OP специально хочет использовать цикл for.

  const str = "anything";
  for (let i = 0; i < str.length; i++) {
    const char = str[i];
    if (char === "A") {
      console.info("contains A");
    } else if (char === "a") {
      console.info("contains a");
    } else {
      console.info("do something...");
    }
  }

Оригинальный ответ:

Вы можете использовать метод включает в себя вместо цикла for.

  const str = "Anything";
  if (str.includes("A")) {
    console.info("contains A");
  } else if (str.includes("a")) {
    console.info("contains a");
  } else {
    console.info("do something...");
  }

"… Использование цикла for…".

RobG 21.03.2022 04:19

Вы предупреждаете каждую итерацию цикла, что означает, что вы вызываете «оповещение» для каждой буквы.

То, что вы, вероятно, захотите сделать, это создать переменную, например

var doesContainA = false;

Затем в вашем цикле, если оно равно a или A, измените doContainA на true;

В конце сделайте один окончательный оператор if, который определяет, какое сообщение следует оповещать, в зависимости от того, стала ли эта переменная истинной или все еще ложной.

Кроме того, средства форматирования могут помочь вам легче читать код, выстраивая все в ряд, что-то вроде это.

Ответ принят как подходящий

Зачем вам нужен цикл, вы можете сделать это с помощью этого

if (text.includes('A')){
    alert("The string contains the letter A.");
}else if (text.includes('a')){
    alert("The string contains the letter a.");
}else{
    alert("The string does not contain the letter A.");
}

ОБНОВИТЬ

var text= prompt("Enter any string.")
var letterA = false;
var lettera = false
for (var i = 0; i < text.length; i++) {
    if (text[i] === "A")
    {
        letterA = true;
    }
    if (text[i] === "a")
    {
        lettera = true
    }
}
if (letterA=== true){
    alert('string contains letter A');
}else if (lettera ===true){
    alert('string contains letter a');
}else{
     alert(' string does not contain a or A character');
}

Мой учитель хочет, чтобы мы попрактиковали цикл for, поскольку он является частью урока.

ds4 21.03.2022 04:18

"… Использование цикла for…".

RobG 21.03.2022 04:18

Я обновил свой код с помощью цикла. Проверьте это

Sheikh Haziq 21.03.2022 04:42

Используйте отдельную функцию, которая возвращает логический результат. Этот метод позволяет остановить итерацию после первого появления нужных букв:

function hasLetter(text) {
    var char;
    for (var i = 0; i < text.length; i++) {
        char = text[i];
        if (char === "A" || char === "a") {
            return true;
        }
    }

    return false;
}

var text = prompt("Enter any string.");

if (hasLetter(text)) {
    alert("The string contains the letter A.");
} else {
    alert("The string does not contain the letter A.");
}

Вы также можете использовать функцию String.toLowerCase и проверить, соответствует ли char строчной букве «a»:

char = text[i].toLowerCase();
if (char === "a") {
    return true;
}

Другие вопросы по теме