用于三元运算符的数组映射函数

时间:2018-11-15 08:00:54

标签: reactjs redux react-redux

这是我的数组

var CountryList = [{ name: Canada, value: 1 },
    { name: USA, value: 2 }]

这是我现在正在使用的操作

var filterStr = nextProps.Country.value == "1" ? 'Canada' : 'USA';

现在,我想在上面的代码中使用数组CountryList来检查是否选择了Canada或USA。使用地图完成吗? 如果是美国,我想在另一个下拉列表中填充美国。如果是加拿大,则为加拿大。所以根据从这个数组的选择,我想填充状态。我需要检查选定的国家。即,我想获得国家名称。 怎么做?

3 个答案:

答案 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不是在此处使用的正确功能。 您应该使用findfilter函数。 let country = CountryList.find((c) => (c.value === 1)) country = country && country.name