Switch -vs- Object
by Dominic Myers
JavaScript
// Recording Object
var times = {
"switch": "",
"object": ""
};
// Testing array
var a = ["0", "1", "2", "0", "1", "2", "0", "1", "2", "0", "1", "2", "0", "1", "2"];
// Switch test
var start_switch = new Date().getTime();
var return_switch = "";
for (var b = 0; b < 50000; ++b) {
for (var x = 0; x < a.length; x++) {
switch (a[x]) {
case "2":
return_switch += "two";
break;
case "1":
return_switch += "one";
break;
default:
return_switch += "zero";
break;
}
}
}
var end_switch = new Date().getTime();
times["switch"] = end_switch - start_switch;
// Object test
var switch_replacement = {
"1": function() {
return "one";
},
"2": function() {
return "two";
}
};
var start_object = new Date().getTime();
var return_object = "";
for (var c = 0; c < 50000; ++c) {
for (var y = 0; y < a.length; y++) {
return_object += (switch_replacement[a[y]]) ? switch_replacement[a[y]]() : "zero";
}
}
var end_object = new Date().getTime();
times.object = end_object - start_object;
// Results
alert(JSON.stringify(times));