我的对象包含国家/地区代码和国家/地区名称,如下所示:
countries = {'CA': {name: Canada}, 'GR': {name: Greece}, 'SG': {name: Singapore}}
然后我有另一个这样的数组:
markets = ["CA", "GR", "SG"]
然后我想为这个形状的每个市场数组实例创建一个对象数组: {label:...,value:....} 所以我正在写
const martOptions = markets.map((i) => {
return {label: i, value: i}
})
但是对于标签我不想分配CA或GR。我想以某种方式在countries对象中找到国家/地区的名称,并将其添加到标签中,以便具有以下内容:
{label: Canada, value: CA} and not {label: CA, value: CA}
。有什么想法吗?
答案 0 :(得分:4)
您只需返回countries
对象,即可获取与当前国家/地区代码相关联的名称:
const countries = {'CA': {name: 'Canada'}, 'GR': {name: 'Greece'}, 'SG': {name: 'Singapore'}}
const markets = ["CA", "GR", "SG"]
const martOptions = markets.map((i) => ({label: countries[i].name, value: i}))
console.log(martOptions)
请注意,如果countries[i].name
数组中的代码在markets
对象中不存在,countries
会给您一个错误。
(另请注意,如果将其放在括号中,则可以直接返回新对象,而不需要箭头函数中的{ return ... }
结构。)