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');