Communication message parser

http://swstaticwebcontent.s3-website-us-east-1.amazonaws.com/exercise1.html

by sramnan

JavaScript

//Program to find valid messages in a message stream
//Program owned by Sonia Ramnani


var lower_chars = "abcdefghij";
var upper_chars = "MKPQ";
var z_chars = "Z";

//Helper function to check if an array is empty
function isArrayEmpty(arr) {
    return (arr.length > 0 ? false : true);
}

//Helper function to map boolean value to valid or invalid
function mapBoolToStr(val) {
    return (val ? "VALID" : "INVALID");

}

//Function to validate a message
function validateMessage(msg) {
    var messageChunk = [];
    var outputObj = {};
    var isValid = false;
    var chunkArray = [];
    messageChunk = msg.split(' ');
    for (var i = 0; i < messageChunk.length; i++) {
        chunkArray = messageChunk[i].split('');
        isValid = parseMessage(chunkArray) && isArrayEmpty(chunkArray);
        outputObj[messageChunk[i]] = mapBoolToStr(isValid);
    }
    return outputObj;
}

//Function to parse message chunk
function parseMessage(message) {
    var ch = '';
    if (message.length > 0) {
        ch = message.shift();
    } else {
        return false;
    }

    if (lower_chars.indexOf(ch) >= 0)
        return true;
    else if (z_chars.indexOf(ch) >= 0) {
        return parseZMessage(message);

    }
    else if (upper_chars.indexOf(ch) >= 0) {
        return parseUpMessage(message);
    }
    else
        return false;
}

//Function to parse a message starting from a upper character which is either ( M  K  P  Q )
function parseUpMessage(message) {
    var parsedV1 = parseMessage(message);
    var parsedV2 = parseMessage(message);
    return parsedV1 && parsedV2;
}
//Function to parse a message starting from a upper character Z
function parseZMessage(message) {
    var parsedV1 = parseMessage(message);
    return parsedV1;
}

var msg = "Qa Zj MZca Khfa";
var parsedObj = validateMessage(msg);
for(var key in parsedObj){
    if (parsedObj.hasOwnProperty(key)){
        console.log(key + " " + parsedObj[key]);
    }
}