javascript - 缩短长 if/else 语句的最简单方法是什么?
问题描述
下面的全功能(简化)示例。
假设我有一个可以转换为全名的 10 个可能缩写的列表。
它不够大,我想在数据库中进行查找。
什么是最简单的 if-else 解决方案?
这是我想象中的解决方案:从逻辑上讲,比较两个数组是有意义的,例如:
var bar = [foo == sf, foo == ny, foo == la] ? [San Francisco, New York, Los Angeles] : "";
否则,我在下面有一个有效的解决方案。我还能做得比这更好吗?
编辑:理想的解决方案是一行代码。我不想使用 switch 语句,因为它的编写效率并不比 if/else 高多少。
bar = "LA";
sf = "SF";
ny = "NY";
la = "LA";
{
if (bar == sf) {
foo = "San Francisco";
} else if (bar == ny) {
foo = "New York";
} else if (bar == la) {
foo = "Los Angeles";
}
document.getElementById("test").innerHTML = foo;
}
<div id="test">Result</div>
解决方案
这不是使用if
语句,但您可以使用对象轻松实现此目的:
var cities = {
"LA": "Los Angeles",
"SF": "San Francisco",
"NY": "New York"
}
var search = "LA";
var foo = cities[search];
document.body.innerHTML = foo;
推荐阅读
- flutter - 两个流构建器给了我 RangeError (index): Invalid value: Only valid value is 0: 1 当它应该从 2 个不同的集合中读取两个文档时
- python - Pandas 创建独特的行和拆分列
- discord.py - discord py 'keyerror' (不和谐组件,斜线命令)
- assembly - 为什么 lodsb 在引导加载到内核后不工作?
- docker - 如何在 SSH 连接会话中显示 VSCode 中的配置文件?
- php - 搜索数据库仅在 php 开发环境中工作
- django - 如何在 ubuntu aws 上使用 python3.9 安装 django
- javascript - Moment.JS 没有在两个不同的日期呈现正确的月份
- javascript - 为什么函数名称未显示在 chrome 检查器中的“运行微任务”下
- r - 根据年份列创建一个包含从和到年份范围的值的小标题