If-else vs. switch vs. lookup table - multiple valids (v38)

Revision 38 of this benchmark created by Cybolic on


Setup

function ifElseTest(stuff) {
      if (stuff === "pizza" || stuff === "burger" || stuff === "pasta") {
        return "food";
      } else if (stuff === "house" || stuff === "apartment" || stuff === "office") {
        return "building";
      }
    };
    
    function switchTest(stuff) {
      switch (stuff) {
        case "pizza":
        case "burger":
        case "pasta":
          return "food";
        break;
    
        case "house":
        case "apartment":
        case "office":
          return "building";
        break;
      }
    };
    
    var lookupResultFood = function() {
      return "food";
    };
    var lookupResultBuilding = function() {
      return "building";
    };
    var lookupTable = {
      "pizza": lookupResultFood,
      "burger": lookupResultFood,
      "pasta": lookupResultFood,
      "house": lookupResultBuilding,
      "apartment": lookupResultBuilding,
      "office": lookupResultBuilding
    };

Test runner

Ready to run.

Testing in
TestOps/sec
if else
ifElseTest("pizza");
ifElseTest("house");
ifElseTest("burger");
ifElseTest("apartment");
ifElseTest("pasta");
ifElseTest("office");
ready
switch
switchTest("pizza");
switchTest("house");
switchTest("burger");
switchTest("apartment");
switchTest("pasta");
switchTest("office");
ready
lookup table
lookupTable["pizza"]();
lookupTable["house"]();
lookupTable["burger"]();
lookupTable["apartment"]();
lookupTable["pasta"]();
lookupTable["office"]();
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.