switches

Benchmark created on


Setup

let cases = ["case1", "case2", "case3", "case4", "case5", "case6", "case7", "case8", "case9", "case10"];

const data = cases.map((key) => ({ key, a: 2, b: 3 }));
function add({ a, b }) {
  return a + b;
}

const mapStructure = new Map([
  ["case1", add],
  ["case2", add],
  ["case3", add],
  ["case4", add],
  ["case5", add],
  ["case6", add],
  ["case7", add],
  ["case8", add],
  ["case9", add],
  ["case10", add],
]);

const objMap = {
  case1: add,
  case2: add,
  case3: add,
  case4: add,
  case5: add,
  case6: add,
  case7: add,
  case8: add,
  case9: add,
  case10: add,
};

function swCase(input) {
  switch (input.key) {
    case "case1":
      add(input);
      break;
    case "case2":
      add(input);
      break;
    case "case3":
      add(input);
      break;
    case "case4":
      add(input);
      break;
    case "case5":
      add(input);
      break;
    case "case6":
      add(input);
      break;
    case "case7":
      add(input);
      break;
    case "case8":
      add(input);
      break;
    case "case9":
      add(input);
      break;
    case "case10":
      add(input);
      break;
  }
}

Test runner

Ready to run.

Testing in
TestOps/sec
switch
data.map(member => swCase(member))
ready
objMap
data.map(member => objMap[member.key](member))
ready
Map
data.map(member => mapStructure.get(member.key)(member))
ready

Revisions

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