我不得不使用 for 循环遍历字符串中的每个字符,但代码无法正常工作
I had to use a for loop to to go through each character in a string but the code is not working properly
这些是我应该做的练习的说明:
从要求用户输入任何字符串的提示开始。
使用 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.");
}
}
编辑:因为 OP 特别想使用 for 循环。
const str = "anything";
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === "A") {
console.log("contains A");
} else if (char === "a") {
console.log("contains a");
} else {
console.log("do something...");
}
}
原答案:
您可以使用 includes 方法代替 for 循环。
const str = "Anything";
if (str.includes("A")) {
console.log("contains A");
} else if (str.includes("a")) {
console.log("contains a");
} else {
console.log("do something...");
}
您正在提醒循环的每次迭代,这意味着您正在为每个字母调用 'alert'。
您可能想要做的是创建一个像
这样的变量
var doesContainA = false;
然后在你的循环中,如果它等于 a 或 A,则将 doesContainA 更改为 true;
最后,做一个最终的 if 语句,根据该变量是真还是假来控制要警告的消息
此外,格式化程序可以通过排列所有内容来帮助您更轻松地阅读代码,例如 this
为什么要循环这样做,你可以这样做
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');
}
使用 returns 布尔结果的单独函数。此方法可让您在首次出现所需字母后停止迭代:
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
并检查字符是否匹配小写字母 'a':
char = text[i].toLowerCase();
if (char === "a") {
return true;
}
这些是我应该做的练习的说明: 从要求用户输入任何字符串的提示开始。
使用 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.");
}
}
编辑:因为 OP 特别想使用 for 循环。
const str = "anything";
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === "A") {
console.log("contains A");
} else if (char === "a") {
console.log("contains a");
} else {
console.log("do something...");
}
}
原答案:
您可以使用 includes 方法代替 for 循环。
const str = "Anything";
if (str.includes("A")) {
console.log("contains A");
} else if (str.includes("a")) {
console.log("contains a");
} else {
console.log("do something...");
}
您正在提醒循环的每次迭代,这意味着您正在为每个字母调用 'alert'。
您可能想要做的是创建一个像
这样的变量var doesContainA = false;
然后在你的循环中,如果它等于 a 或 A,则将 doesContainA 更改为 true;
最后,做一个最终的 if 语句,根据该变量是真还是假来控制要警告的消息
此外,格式化程序可以通过排列所有内容来帮助您更轻松地阅读代码,例如 this
为什么要循环这样做,你可以这样做
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');
}
使用 returns 布尔结果的单独函数。此方法可让您在首次出现所需字母后停止迭代:
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
并检查字符是否匹配小写字母 'a':
char = text[i].toLowerCase();
if (char === "a") {
return true;
}