Isogram examples
by jacobwsmith
JavaScript
function isIsogram1 (str: string) {
return !/(\w).*\1/i.test(str);
}
// Array - chain methods together, order does matter
function isIsogram2(str: string){
return str.toLowerCase().split('').sort().every((val, index, arr) => {
return val !== arr[index-1];
});
}
// Set - super easy, check broswer support
function isIsogram3(str: string){
return str.length === new Set(str.toLowerCase()).size;
}
// RegEx Test
console.log('\n=== Test RegEx Solution ===');
console.log('Dermatoglyphics: ', isIsogram1('Dermatoglyphics')? 'PASS':'FAIL');
console.log('isogram: ', isIsogram1('isogram')? 'PASS':'FAIL');
console.log('aba: ', isIsogram1('aba')?'FAIL':'PASS');
console.log('moOse: ', isIsogram1('moOse')?'FAIL':'PASS');
console.log('isIsogram: ', isIsogram1('isIsogram')?'FAIL':'PASS');
// Array Test
console.log('\n=== Test Array Solution ===');
console.log('Dermatoglyphics: ', isIsogram2('Dermatoglyphics')? 'PASS':'FAIL');
console.log('isogram: ', isIsogram2('isogram')? 'PASS':'FAIL');
console.log('aba: ', isIsogram2('aba')?'FAIL':'PASS');
console.log('moOse: ', isIsogram2('moOse')?'FAIL':'PASS');
console.log('isIsogram: ', isIsogram2('isIsogram')?'FAIL':'PASS');
// Set Test
console.log('\n=== Test Set Solution ===');
console.log('Dermatoglyphics: ', isIsogram3('Dermatoglyphics')? 'PASS':'FAIL');
console.log('isogram: ', isIsogram3('isogram')? 'PASS':'FAIL');
console.log('aba: ', isIsogram3('aba')?'FAIL':'PASS');
console.log('moOse: ', isIsogram3('moOse')?'FAIL':'PASS');
console.log('isIsogram: ', isIsogram3('isIsogram')?'FAIL':'PASS');