javascript - 有条件地比较数组的值并将其设置为变量
问题描述
所以我试图flag
根据传递dishes
的对象数组的值为变量设置一个标志表情符号。
我有一个解决方案,但我敢打赌这可以改进。我的意思是想象一下50个国家......
let flag = ''
const countryFlags = ['', '', '', '']
const dishes = [
{ dish: 'pizza', origin: 'italian' },
{ dish: 'tzatziki', origin: 'greek' }
]
const chooseFlag = a => {
if (a === 'german') flag = countryFlags[0]
if (a === 'greek') flag = countryFlags[1]
if (a === 'spanish') flag = countryFlags[2]
if (a === 'italian') flag = countryFlags[3]
}
chooseFlag(dishes.origin)
有人有速记解决方案吗?
解决方案
您可以创建一个map
键值对(key
作为国家和value
作为代码):
let flag = ''
const countryToFlags = {
'german':'',
'greek':'',
'spanish':'',
'italian':''
}
const dishes = [
{ dish: 'pizza', origin: 'italian' },
{ dish: 'tzatziki', origin: 'greek' }
]
const chooseFlag = a => {
flag = countryToFlags[a];
}
chooseFlag(dishes[0].origin);
console.log(flag);
推荐阅读
- postgresql - OSX 上的“psql:无法连接到服务器”:没有要删除的 postmaster.pid
- cassandra - 同一集群中的 Scylla 数据中心和 Cassandra 数据中心
- firebase - Firebase 配置错误:参数无效,必须采用 key=val 格式
- ios - FirebaseApp.configure() 在启动时使应用程序崩溃
- javascript - 使用 AVIF 图像格式从 Canvas 创建图像
- scala - 跳过的阶段对 Spark 作业有任何性能影响吗?
- sql-server - 在 SQL 中使用带有 except 的 OFFSet 子句
- python - what is the meaning of writing a number near to write loop
- c - 你能告诉我如何声明这个数组 arr[n[j]]={0}; 全零
- python - nuitka:如何使用--include-plugin-files?