【发布时间】:2021-10-22 20:09:24
【问题描述】:
我写了一个程序来验证一个随机字符串是否是一个 pangram(包含所有字母),我将作为函数参数的字符串转换为一个数组,然后我逐个字母检查并将找到的每个新字母放入一个新数组中,并在计数器上加 1。如果计数器等于 26,则函数返回 true,否则返回 false。但似乎使用的 Array.includes 方法不计算大写字母,出于某种原因,我认为它会计算同一个字母两次,因为它以小写和大写形式出现。有人可以帮我吗? 我的代码如下:
function pangram (string){
let alphabet =
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
let arrayString = Array.from(string);
let counterArray = [];
let counter = 0;
for(let i = 0; i <= arrayString.length-1; i++){
for(let j = 0; j <= alphabet.length-1; j++){
if(arrayString[i] === alphabet[j]){
if(counterArray.includes(arrayString[i])){
counter;
} else {
counterArray.push(arrayString[i]);
counter++;
}
}
}
}
if(counter === 26){
return true;
} else {
return counter;
}
}
【问题讨论】:
-
什么大写字母?
-
那么当你传入大写字母时,预期的结果是什么?
-
哦,是的,没错,字母数组不包含任何大写字母。好的,谢谢你的回复,我是新来的,我得注意这样的事情。
标签: javascript arrays uppercase lowercase