JSFiddle - React, Tailwind, and code Playground

by BurpmanJunior

CSS

html,
body{
    font-family: monospace;
}

strong{
    text-decoration: underline;
}

JavaScript

/**
 * ANAGRAM CHECKER
 */

/* VERSION 1.0
function anagram(a, b) {
    var match = false,
        aSplit = a.replace(/[^a-zA-Z]+/ig, '').toLowerCase().split(''),
        bSplit = b.replace(/[^a-zA-Z]+/ig, '').toLowerCase().split('');
    if (aSplit.length == bSplit.length) {
        match = true;
        for (var i = 0; i < aSplit.length; i++) {
            m = false;
            for (var n = 0; n < bSplit.length && !m; n++) {
                if (bSplit[n] == aSplit[i]) {
                    m = true;
                    bSplit[n] = null;
                }
            }
            if(!m){
                match = false;
            };
        }
    }
    return match;
}
*/

/* VERSION 2.0 */
function anagram(a, b) {
    var match = false,
        aSplit = a.toLowerCase().replace(/[^a-z]+/ig, '').split(''),
        bSplit = b.toLowerCase().replace(/[^a-z]+/ig, '').split('');
    if (aSplit.length == bSplit.length) {
        match = true;
        aSplit.sort();
        bSplit.sort();
        for(var i = 0; i < aSplit.length && match; i++){
            if(aSplit[i] != bSplit[i]){
                match = false;
            }
        }
    }
    return match;
}

var strings = [
    ['testers', 'streets'],
    ['colour', 'cooler'],
    ['angle', 'Angel'],
    ['anagram', 'Nag A Ram']
];

for (var i = 0; i < strings.length; i++) {
    document.body.innerHTML = document.body.innerHTML + strings[i][0] + ' : ' + strings[i][1] + ' - ' + (anagram(strings[i][0], strings[i][1]) ? 'is an anagram' : 'is <strong>not</strong> an anagram') + '<br />';
}