Skip to content
Advertisement

check that a word is an isogram with pure javascript

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:

Advertisement