这是我的数组
var CountryList = [{ name: Canada, value: 1 },
{ name: USA, value: 2 }]
这是我现在正在使用的操作
var filterStr = nextProps.Country.value == "1" ? 'Canada' : 'USA';
现在,我想在上面的代码中使用数组CountryList
来检查是否选择了Canada或USA。使用地图完成吗?
如果是美国,我想在另一个下拉列表中填充美国。如果是加拿大,则为加拿大。所以根据从这个数组的选择,我想填充状态。我需要检查选定的国家。即,我想获得国家名称。
怎么做?
答案 0 :(得分:1)
var states = {USA: [{name: 'A', value:1},..],Canada: []}
var country = CountryList.find(country => country.value == nextProps.Country.value).name;
if (states[county]){
this.setState({states: states[country], enabledStates: true});
}else{
this.setState({states: [], enabledStates: false});
}
根据标记enabledState显示状态。
答案 1 :(得分:0)
如果您想要一个包含所有名称为USA的国家/地区的数组,则可以使用以下过滤器:
CountryList.filter = country => country.value === 1 ;
或者如果要检查此数组中是否存在美国示例,则可以使用“查找”
答案 2 :(得分:0)
map
不是在此处使用的正确功能。
您应该使用find
或filter
函数。
let country = CountryList.find((c) => (c.value === 1))
country = country && country.name