我有一个对象数组和一个字符串数组。我需要根据对象中的值从字符串数组中删除某些元素。
这需要在react的render方法中发生。
this.state.pillarNames.forEach(pillarName =>
(pillarData.find(pillar =>
pillar.name === pillarName) === undefined ?
<MenuItem
style={{ fontSize: '14px'
value={pillarName}
key={pillarName}
name={pillarName}
></MenuItem> : null
)
)
我已经尝试过类似的操作,但无法正常工作。
pillarNames = ["abc", "xyz", "def", "hij"];
pillarData = [{
name: "abc",
value: 1
}, {
name: "xyz",
value: 2
}];
因此,我只需要支柱名称中的“ def”和“ hij”。我该怎么办?
答案 0 :(得分:0)
您可以链接Array.prototype.filter()进行过滤,然后使用结果数组Array.prototype.forEach():
const pillarNames = ["abc", "xyz", "def", "hij"]
const pillarData = [{name: "abc", value: 1}, {name: "xyz", value: 2}]
// ...
pillarNames.filter(pn => pillarData.find(pd => pd.name === pn)).forEach(pn => /* your logic... */)