{"ScriptPreparationCode":null,"TestCases":[{"Name":"Loop over characters, check if in input Set","Code":"function isPangram(str) {\r\n const s = new Set(str.toLowerCase())\r\n let a = 97\r\n for (let i = 0; i \u003C 26; i\u002B\u002B) {\r\n if (!s.has(String.fromCharCode(a \u002B i))) return false\r\n }\r\n return true\r\n}\r\nconsole.log(isPangram(\u0027the quick brown fox jumps over the lazy dog\u0027))\r\n","IsDeferred":false},{"Name":"Flip object keys","Code":"function isPangram (str) {\r\n let a = 97\r\n let seen = {}\r\n for (let i = 0; i \u003C 26; i\u002B\u002B) {\r\n seen[String.fromCharCode(a \u002B i)] = false\r\n }\r\n str.toLowerCase().split(\u0027\u0027).map(char =\u003E (seen[char] = true))\r\n return Object.values(seen).every(val =\u003E val)\r\n}\r\nconsole.log(isPangram(\u0027the quick brown fox jumps over the lazy dog\u0027))\r\n","IsDeferred":false},{"Name":"Compare two sets (generate letterSet)","Code":"function isPangram (str) {\r\n let a = 97\r\n let letterSet = new Set()\r\n for (let i = 0; i \u003C 26; i\u002B\u002B) {\r\n letterSet.add(String.fromCharCode(a \u002B i))\r\n }\r\n const inputSet = new Set(str.replace(/[^a-zA-Z]/g, \u0027\u0027).toLowerCase())\r\n return letterSet.size === inputSet.size\r\n}\r\nconsole.log(isPangram(\u0027the quick brown fox jumps over the lazy dog\u0027))\r\n","IsDeferred":false},{"Name":"Compare two sets (static letterSet)","Code":"function isPangram (str) {\r\n let letterSet = new Set(\u0027abcdefghijklmnopqrstuvwxyz\u0027)\r\n const inputSet = new Set(str.replace(/[^a-zA-Z]/g, \u0027\u0027).toLowerCase())\r\n return letterSet.size === inputSet.size\r\n}\r\nconsole.log(isPangram(\u0027the quick brown fox jumps over the lazy dog\u0027))\r\n","IsDeferred":false}]}