使用 if 语句命令缩短 switch 语句的方法

Ways to shorten a switch statement with if statement commands

我目前正在开发一款餐厅应用程序,您可以使用该应用程序select 配料,并显示完整的营养数据。我将有大约 20 种成分。

有什么办法可以缩短这个时间吗?

function displayImage(image) {
  let display = document.querySelector(".display-ingredient")
  switch (image) {
    case "lamb":
      display.src = "images/" + image + ".png";
      lambObj.clicked = !lambObj.clicked
      if (lambObj.clicked === true) {
        meal.push(lambObj);
      } else {
        //unfinished code here
      }
      break;
    case "steak"....
  }
}

构建一个 Map 的有效成分:

const ingredients = new Map()
    .set("lamb", lambObj)
    .set("steak", steakObj)
    /*...*/

然后将您的函数简化为仅使用地图中的查找:

function displayImage(image) {
  let display = document.querySelector(".display-ingredient");

  if(ingredients.has(image)) {
    display.src = "images/" + image + ".png";

    const obj = ingredients.has(image);
    obj.clicked = !obj.clicked;
    if (obj.clicked === true) {
      meal.push(obj);
    } else {
      //unfinished code here
    }
  }

 /* any other logic */
}

这适用于所有成分,您无需为每种成分手动添加代码,只需在 ingredients 地图中添加一个条目即可。