Switch If Else JSON

Benchmark created on


Description

Checks the best way to do a conditional based on one value.

Preparation HTML

<script>
  var part = "1/1";
  
  var xMax = 300;
  var yMax = 300;
  var xHalf = xMax / 2;
  var yHalf = yMax / 2;
  
  var varGrid = {
   '1/1': {
    x: 0,
    y: 0,
    xMax: xMax,
    yMax: yMax
   },
   '1/2': {
    x: 0,
    y: 0,
    xMax: xHalf,
    yMax: yMax
   },
   '2/2': {
    x: xHalf,
    y: 0,
    xMax: xMax,
    yMax: yMax
   },
   '1/4': {
    x: 0,
    y: 0,
    xMax: xHalf,
    yMax: yHalf
   },
   '2/4': {
    x: xHalf,
    y: 0,
    xMax: xMax,
    yMax: yHalf
   },
   '3/4': {
    x: 0,
    y: yHalf,
    xMax: xHalf,
    yMax: yMax
   },
   '4/4': {
    x: xHalf,
    y: yHalf,
    xMax: xMax,
    yMax: yMax
   }
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
If-Else
if (part == "1/1") {
 return {
  x: 0,
  y: 0,
  xMax: xMax,
  yMax: yMax
 };
} else if (varTest == "1/2") {
 return {
  x: 0,
  y: 0,
  xMax: xHalf,
  yMax: yMax
 };
} else if (varTest == "2/2") {
 return {
  x: xHalf,
  y: 0,
  xMax: xMax,
  yMax: yMax
 };
} else if (varTest == "1/4") {
 return {
  x: 0,
  y: 0,
  xMax: xHalf,
  yMax: yHalf
 };
} else if (varTest == "2/4") {
 return {
  x: xHalf,
  y: 0,
  xMax: xMax,
  yMax: yHalf
 };
} else if (varTest == "3/4") {
 return {
  x: 0,
  y: yHalf,
  xMax: xHalf,
  yMax: yMax
 };
} else if (varTest == "4/4") {
 return {
  x: xHalf,
  y: yHalf,
  xMax: xMax,
  yMax: yMax
 };
}
ready
Switch-Case
switch (part) {
case '1/1':
 return {
  x: 0,
  y: 0,
  xMax: xMax,
  yMax: yMax
 };
case '1/2':
 return {
  x: 0,
  y: 0,
  xMax: xHalf,
  yMax: yMax
 };
case '2/2':
 return {
  x: xHalf,
  y: 0,
  xMax: xMax,
  yMax: yMax
 };
case '1/4':
 return {
  x: 0,
  y: 0,
  xMax: xHalf,
  yMax: yHalf
 };
case '2/4':
 return {
  x: xHalf,
  y: 0,
  xMax: xMax,
  yMax: yHalf
 };
case '3/4':
 return {
  x: 0,
  y: yHalf,
  xMax: xHalf,
  yMax: yMax
 };
case '4/4':
 return {
  x: xHalf,
  y: yHalf,
  xMax: xMax,
  yMax: yMax
 };
}
ready
JSON
return varGrid[part];
ready

Revisions

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