函数不会遍历数组的所有索引[重复]
Posted
技术标签:
【中文标题】函数不会遍历数组的所有索引[重复]【英文标题】:function doesn't loop through all index of array [duplicate] 【发布时间】:2021-10-03 01:57:27 【问题描述】:我正在尝试解决查找单词是否为保留关键字的问题。不幸的是,我坚持下去。 调试它表明循环没有增加,但我不知道为什么?此外,看起来只有第 0 个索引与 strLowerCase 进行比较。为什么会这样?我很困惑。
问题陈述: 一种编程语言具有以下不能用作标识符的关键字: break、case、continue、default、defer、else、for、func、goto、if、map、range、return、struct、type、var
编写一个程序来判断给定的单词是否是关键字
function wordIsTheKey(str)
let strLowerCase = str.toLowerCase();
const keywords = [
"break",
"case",
"continue",
"default",
"defer",
"else",
"for",
"func",
"goto",
"if",
"map",
"range",
"return",
"struct",
"type",
"var",
];
keywordsLength = keywords.length;
for (let i = 0; i < keywordsLength; i++)
if (keywords[i] == strLowerCase)
return `$str is a keyword`;
else
return `$str is not a keyword`;
console.log(wordIsTheKey("defer"));
console.log(wordIsTheKey("While"));
【问题讨论】:
你正在使用return
打破循环。
只是一个快捷方式keywords.includes(strLowerCase)
【参考方案1】:
将 if-else 与 return
s 一起使用将在数组中的第一项之后中断循环。在 for 循环中,您应该仅在找到关键字时返回。如果您检查了每一项,则可以返回 str
不是循环外的关键字。
function wordIsTheKey(str)
let strLowerCase = str.toLowerCase();
const keywords = [
"break",
"case",
"continue",
"default",
"defer",
"else",
"for",
"func",
"goto",
"if",
"map",
"range",
"return",
"struct",
"type",
"var",
];
keywordsLength = keywords.length;
for (let i = 0; i < keywordsLength; i++)
if (keywords[i] == strLowerCase)
return `$str is a keyword`;
return `$str is not a keyword`
console.log(wordIsTheKey("defer"));
console.log(wordIsTheKey("While"));
【讨论】:
以上是关于函数不会遍历数组的所有索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章