使用 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
地图中添加一个条目即可。
我目前正在开发一款餐厅应用程序,您可以使用该应用程序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
地图中添加一个条目即可。