Ваш подход состоит в том, чтобы перебрать алфавит и убедиться, что каждая буква az присутствует в целевой строке.Однако условный цикл, 65 + alpha.length
, не будет охватывать размер алфавита, если длина входной строки не равна 26. Итерация от 65 до 91 включительно устранит проблему.
Вот еще одно решение:
const isPangram = s =>
new Set(s.toUpperCase().split``
.filter(e => /[A-Z]/.test(e)))
.size === 26
;
[
"Detect Pangram",
"abcd efgh ijkl mnop qrst uvwx yz",
"abcd efgh ijkl mnop qrst uvwx y",
"bcd efgh ijkl mnop qrst uvwx yz",
"abcdefghijklmnopqrstuvwxyy",
"AbCdEfGhIjKlM zYxWvUtSrQpOn",
"How quickly daft jumping zebras vex."
].forEach(test => console.log(`${isPangram(test)}\t${test}`));