If-else vs. switch vs. lookup table (v55)

Revision 55 of this benchmark created by Javier Alba on


Description

Modified so that the lookup table to have a function for option

Setup

function ifElseTest(stuff) {
      if (stuff === "pizza") {
        return "food";
      } else if (stuff === "house") {
        return "building";
      } else if (stuff === "table") {
        return "furniture";
      } else if (stuff === "car") {
        return "driving";
      } else if (stuff === "water") {
        return "drink";
      } else if (stuff === "air") {
        return "nothing";
      }
    }
    
    function switchTest(stuff) {
      switch (stuff) {
        case "pizza":
          return "food";
          break;
    
        case "house":
          return "building";
          break;
    
        case "table":
          return "furniture";
          break;
    
        case "car":
          return "driving";
          break;
    
        case "water":
          return "drink";
          break;
    
        case "air":
          return "nothing";
          break;
      }
    }
    
    function lookupTable(lookup) {
      
      var table = {
          "pizza": function() {
            return "food";
          },
          "house": function() {
            return "building";
          },
          "table": function() {
            return "furniture";
          },
          "car": function() {
            return "driving";
          },
          "water": function() {
            return "drink";
          },
          "air":  function() {
            return "nothing";
          }
      };
    
      return table[lookup]();
       
    }

Test runner

Ready to run.

Testing in
TestOps/sec
if else
ifElseTest("pizza");
ifElseTest("water");
ifElseTest("air");
ready
switch
switchTest("pizza");
switchTest("water");
switchTest("air");
ready
lookup table
lookupTable("pizza");
lookupTable("water");
lookupTable("air");
ready

Revisions

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