How do i check that a given word is an isogram with pure javascript, using a function. the function must return true or false.
An isogram is a word with a repeated character.
I know this code works, but i need a better solution.
function isIsogram(word){ x = false; y = false; for(i = 0; i < word.length; i++){ wordl = word.substring(0,i) wordr = word.substring(i) x = wordl.includes(word.charAt(i)) y = wordr.includes(word.charAt(i)) //console.log(x,wordl,wordr) } return x&&y } isIsogram("thomas");//False isIsogram("moses"); //True
Advertisement
Answer
Here is a simple approach using .split()
and .every()
:
let isIsogram = (str) => str.split("").every((c, i) => str.indexOf(c) == i); console.log(isIsogram("thomas")); /* no repeating letter */ console.log(isIsogram("moses")); /* s repeat 2 times */ console.log(isIsogram("hello")); /* l repeat 2 times */ console.log(isIsogram("world")); /* no repeating letter */ console.log(isIsogram("a b c")); /* space character repeat 2 times */
Docs: