code: function parseData(obj, result) {
    if(result===undefined){result = [];}
    for (var key in obj) {
      if (obj[key] !== null && typeof(obj[key])=="object") {
        parseData(obj[key], result);
      }else if(Array.isArray(obj) && typeof(obj[key])==='string'){
        var re = /^\/\/\/.*(\*)[0-9]*\/\/\/$/;
        var text = obj[key].split(" ").join("");
        if(re.test(text)){
          result.push({
            location:obj,
            index:key,
            key:text.match(/^\/\/\/.*(\*)/)[0].replace('///','').replace('*',''),
            amount:parseInt(text.match(/\d+\/\/\/$/)[0].replace('///',''),10)
          });
        }
      }
    }
    return result
  }
docs: /*
  Recursively iterate through each key in object to find template place holder
  If ///[templ_name] * [repeat_num]/// is found, add the info to result array
  Arg:
  - obj (Array or Object)
  - result(Array)
  Return:
  - result (Array): instructions of where/which template/how many to add data