diff --git a/snippets/isIsogram.md b/snippets/isIsogram.md new file mode 100644 index 000000000..e26e7683b --- /dev/null +++ b/snippets/isIsogram.md @@ -0,0 +1,26 @@ +--- +title: isIsogram +tags: string, intermediate +--- + +Creates a function that accepts a string parameter and output whether its an isogram or not. + +- Use `String.toLowerCase()` to convert the string to lowercase letters. +- Use `String.prototype.split()`, `String.prototype.indexOf()` and `Array.prototype.every()` to split the string into substrings, run a test for all the elements in that array and finally return the index of first occurence of a specified value in a string. +- Function returns true if the string is an isogram (that is no letter is repeated) else returns false. +- Returns false is called with no parameter. + +```js +const isIsogram = (str = null) => { + if(str == null) return false; + str = str.toLowerCase(); + return str.split("").every((c, i) => str.indexOf(c) === i); +} +``` + +```js +isIsogram("Dermatoglyphics"); // true +isIsogram("aba"); // false +isIsogram("moOse"); // false +isIsogram(); // false +```