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

Revision 2 of this benchmark created by Luís Couto on


Setup

function ifElseTest(stuff) {
    if(stuff === 1) {
      return "food";
    } else if (stuff === 2) {
      return "building";
    } else if (stuff === 3) {
      return "furniture";
    } else if (stuff === 4) {
      return "driving";
    } else if (stuff === 5) {
      return "drink";
    } else if (stuff === 6) {
      return "nothing";
    }
  };
  
  function switchTest(stuff) {
    switch (stuff) {
      case 1:
        return "food";
      break;
  
      case 2:
        return "building";
      break;
  
      case 3:
        return "furniture";
      break;
  
      case 4:
        return "driving";
      break;
  
      case 5:
        return "drink";
      break;
   
      case 6:
        return "nothing";
      break;
    }
  };
  
  var lookupTable = {
    1: function() {
      return "food";
    },
    2: function() {
      return "building";
    },
    3: function() {
      return "furniture";
    },
    4: function() {
      return "driving";
    },
    5: function() {
      return "drink";
    },
    6:  function() {
      return "nothing";
    }
  };

Test runner

Ready to run.

Testing in
TestOps/sec
if else
ifElseTest(1);
ifElseTest(5);
ifElseTest(6);
ready
switch
switchTest(1);
switchTest(5);
switchTest(6);
ready
lookup table
lookupTable[1]();
lookupTable[5]();
lookupTable[6]();
ready

Revisions

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