我停留在应该计算字符串中高位字母的函数上。但是取而代之的是计数器的结果为0,我不知道我在哪里犯了错误。
const bigLettersCount = (str) => {
let result = 0;
for (let i = 0; i < str.length; i += 1) {
if (str[i].toUpperCase() === str[i]) {
result += i;
}
return result;
}
}
bigLettersCount('HeLLo')
您可以使用regex执行相同的操作。
const str = 'HeLLo';
console.log(
(str.match(/[A-Z]/g) || '').length
)
我已经按照以下方式更新了您的代码。它将起作用。
const bigLettersCount = (str) => {
let result = 0;
for (let i = 0; i < str.length; i += 1) {
if (str[i].toUpperCase() === str[i]) {
result++;
}
}
return result;
}
您可以使用charCodeAt(),并且如果它在65(A)和90(Z)之间,则表示它是大写字母:
const bigLettersCount = (str) => {
let result = 0;
for (let i = 0; i < str.length; i += 1) {
if (str.charCodeAt(i) > 64 && str.charCodeAt(i) <91 ) {
result += 1;
}
}
return result
}
console.log(bigLettersCount('HeLLo'))