I'm using an API which returns text in the following format:#start#p 09060 20131010#p 09180 AK#p 01001 19110212982#end#start#p 09060 20131110#p 09180 AB#p 01001 12110212982#endI'm converting this to a list of objects:var result = data.match(/#start[\s\S]+?#end/ig).map(function(v){    var lines = v.split('\n'),        ret = {};    $.each(lines, function(_, v2){        var split = v2.split(' ');        if(split[1] && split[2])             ret[split[1]] = split[2];    });    return ret;});My concern is that the API returns quite a lot of data, therefore I would like some feedback regarding on how to improve the performance.For instance, is there any way to reduce the mapping complexity from O(N2) to O(N)?Also, please suggest regex improvements :)
Performance tuning on a text file to object conversion
javascript;performance;jquery;parsing;regex
If you use regular expressions for parsing, then I would recommend using them for everything.  Here's a solution that proceeds line by line, using capturing parentheses to see what the line contained.function parse(data) {    var re = /(#start)|(#end)|#p\s+(\S+)\s+(\S+)/ig;    var results = [], match, obj;    while (match = re.exec(data)) {        if (match[1]) {           // #start            obj = {};        } else if (match[2]) {    // #end            results.push(obj);            obj = null;           //  Prevent accidental reuse if input is malformed        } else {                  // #p something something            obj[match[3]] = match[4];        }    }    return results;}