MorzeToAbc

by Vladimir

JavaScript

/** Test function
@param f - function to test
@param n - total iterations
*/
function runTest(f, n) {
    var d1 = (new Date()).valueOf(),
    r,
    d2;
    for(var i=0; i<n; i++) {
        r = f();
    }
    d2 = (new Date()).valueOf();
    alert('f(): '+n+' iterations in '+(d2-d1)+'ms\nOr '+parseInt(1000*n/(d2-d1))+' iterations in 1 sec');
}
//-----------------
var t = '.... . .-.. .--.   -- .   --- ..- -   --- ..-.   - .... .. ...   .-- . .-.. .-..';
function morzeToAbc(str)
{
    var c = {
            '--.-':'Q',
            '--..':'Z',
            '-..-':'X',
            '-.--':'Y',
            '-.-.':'C',
            '-...':'B',
            '.---':'J',
            '.--.':'P',
            '.-..':'L',
            '..-.':'F',
            '...-':'V',
            '....':'H',
            '---':'O',
            '--.':'G',
            '-.-':'K',
            '-..':'D',
            '.--':'W',
            '.-.':'R',
            '..-':'U',
            '...':'S',
            '--':'M',
            '-.':'N',
            '.-':'A',
            '..':'I',
            '-':'T',
            '.':'E'},
        i;
    str += ' ';
    for(i in c) {
        str = str.split(i+' ').join(c[i]);
    }
    return str.replace(/\s{2}/g, ' ');
}
runTest(function(){ morzeToAbc(t);}, 200);