我使用this.state
在map
中获得data
:
componentDidMount
它成功返回了数据,现在我想对这个对象做一个过滤器,我treid:
componentDidMount() {
const DistrictOptions = Data.DistrictData.map((obj) => ({
key: obj.id,
text: obj.name,
value: obj.id,
cid: obj.cid
}));
console.log(DistrictOptions); // return data successfully
}
但是这个返回的空数组const DistrictOptions = Data.DistrictData.filter(x => x.cid === 1).map((v, i) => {
return {
key: i,
value: v.id,
text: v.name
}
});
我也尝试过:
[]
但是此返回const opt = DistrictOptions.find(x => x.cid === 1);
,使这里发生的事情和我做错的事情感到困惑。这是undefined
:
Data.DistrictData
答案 0 :(得分:2)
您可以使用==
比较器来比较如图所示的cid
或使用===
运算符并将cid
转换为数字:
const DistrictOptions = Data.DistrictData.filter(x => x.cid == 1).map((v, i) => {
return {
key: i,
value: v.id,
text: v.name
}
});
const DistrictOptions = Data.DistrictData.filter(x => Number(x.cid, 10) == 1).map((v, i) => {
return {
key: i,
value: v.id,
text: v.name
}
});
您也可以使用parseInt(x.cid,10)
转换为整数。