gpt4 book ai didi

javascript - 编写 if else 语句的更好方法

转载 作者:行者123 更新时间:2023-11-28 15:25:08 25 4
gpt4 key购买 nike

第一次写Javascript。我只是想知道是否有更短的写法:

<p id="demo"></p>

<script>
function myFunction() {
var letter = document.getElementById("myInput").value;
var text;

if (letter === "5544") {
text = "Abar, Marlon 1,800";

} else if (letter === "5545") {
text = "Pia, Darla 1,800";

} else if (letter === "5546") {
text = "Salazar, Alex 1,500";

//etc...

} else {
text = "Incorrect Account Number";
}
document.getElementById("demo").innerHTML = text;
}
</script>

尝试过 map ,但无法使其工作。

最佳答案

实际上没有更短的方法来以这种方式编写 if 语句(我假设这就是您所要求的)。但是,可能有几种不同的方法来编写它,具体取决于您要检查的内容数量。

使用 Switch 语句

在处理letter的多种情况时,有一种更简洁的方法。

这将是一个 switch 语句,如下所示:

var text;

switch (letter) {
case "5544":
text = "Abar, Marlon 1,800";
break;
case "5545":
text = "Pia, Darla 1,800";
break;

// more cases

default:
text = "Incorrect Account Number";
break;
}

在某些情况下,这比 if else 语句读起来要好一些。这里的 default 关键字充当 if else 语句中的 else 子句。如果您愿意,case 可以充当不同的 if 语句。

本质上,上面的 switch 语句将遍历它定义的每个 case,直到找到与 letter 匹配的 case(例如 "5544")。如果没有匹配,则会遇到 default 情况。一旦找到匹配项,每个 case 末尾的 break 关键字会阻止事情落入下一个定义的 case

对于超过 6 或 7 个案例,此方法可能会变得很麻烦。

创建对象并查找值

现在,获取所需值的更短方法可能是定义一个对象并根据输入的内容获取值,如下所示:

var letter = document.getElementById('selector').value;
var obj = {
'5544': 'Abar, Marlon 1,800'
};

if (letter in obj) {
// do something if found
}
else {
// do something if not found
}

如果您有很多值需要检查,这可能是获取值的简单方法。

其他想法

作为所有这些的旁注,有一些称为三元语句的简写 if 语句,您可以在这里找到: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator ...但是,我不建议嵌套它们,因为它会变得非常复杂并且可读性不太好。

结论

因此,重申一下您的问题的答案:不,实际上没有更短的方法来编写包含多个值的 if else 语句。您可以使用 switch 语句使其更简洁。如果您想要检查很多值,请使用对象查找方法。

关于javascript - 编写 if else 语句的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29338081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com