const template = { "Classes": { "_string": "Unit Organic ConquestCritical Human CitizenSoldier" }, "VisibleClasses": { "_string": "Citizen Worker Soldier Infantry Ranged Archer" }, "Rank": "Basic" }; const iterations = 10000000; function GetIdentityClasses1(template) { var classList = []; if (template.Classes && template.Classes._string) classList = classList.concat(template.Classes._string.split(/\s+/)); if (template.VisibleClasses && template.VisibleClasses._string) classList = classList.concat(template.VisibleClasses._string.split(/\s+/)); if (template.Rank) classList = classList.concat(template.Rank); return classList; }; function GetIdentityClasses2(template) { var classList = []; if (template.Classes && template.Classes._string) classList = classList.concat(template.Classes._string.split(/\s+/)); if (template.VisibleClasses && template.VisibleClasses._string) classList = classList.concat(template.VisibleClasses._string.split(/\s+/)); if (template.Rank) classList = classList.push(template.Rank); return classList; }; function GetIdentityClasses3(template) { let classString = ""; if (template.Classes && template.Classes._string) classString += template.Classes._string; if (template.VisibleClasses && template.VisibleClasses._string) classString += template.VisibleClasses._string; if (template.Rank) classString += " " + template.Rank; return classString.length ? classString.split(/\s+/) : []; }; function GetIdentityClasses4(template) { let classString = ""; if (template.Classes && template.Classes._string) classString += template.Classes._string; if (template.VisibleClasses && template.VisibleClasses._string) classString += template.VisibleClasses._string; if (template.Rank) classString += " " + template.Rank; return classString.length ? classString.split(/\s+/) : []; }; let start = process.hrtime()[0]; for(let a = 0; a < iterations; ++a) GetIdentityClasses1(template); let duration = process.hrtime()[0] - start; console.log(duration / iterations * 1000 + " ms."); start = process.hrtime()[0]; for(let a = 0; a < iterations; ++a) GetIdentityClasses2(template); duration = process.hrtime()[0] - start; console.log(duration / iterations * 1000 + " ms."); start = process.hrtime()[0]; for(let a = 0; a < iterations; ++a) GetIdentityClasses3(template); duration = process.hrtime()[0] - start; console.log(duration / iterations * 1000 + " ms."); start = process.hrtime()[0]; for(let a = 0; a < iterations; ++a) GetIdentityClasses4(template); duration = process.hrtime()[0] - start; console.log(duration / iterations * 1000 + " ms.");