【发布时间】:2018-11-28 03:31:28
【问题描述】:
pangram 是一个包含字母表中每个字母至少一次的句子。
到目前为止,这是我的代码:
const isPangram = (string) => {
let alpha = string.toUpperCase().split("");
for (let beta = 65; beta < 65 + alpha.length; beta++) {
let gamma = String.fromCharCode(beta);
if (alpha.includes(gamma)) {
continue;
}
else {
return false;
}
}
return true;
}
console.log(isPangram("Detect Pangram"));
为什么“检测 Pangram”会返回 true?
【问题讨论】:
-
我认为你循环中的条件是错误的。 65 是 beta 的起始值,并且已经肯定大于 alpha 的长度。 beta 的范围不应该是 65 到 90('Z')吗?
-
这里有一个基于正则表达式的两行函数:stackoverflow.com/a/32557405/74757
-
你的循环应该更像:
for (let beta = 65; beta < 91; beta++) { -
补充艾米所说的,你的循环应该是从“A”到“Z”,不是吗?不是 65 到字符串的长度?
-
@MarkMeyer 你是对的!我不知何故错过了 for 循环之前的那一行。我的错。
标签: javascript pangram