如何遍历对象数组以基于另一个字符串数组进行过滤

时间:2019-09-17 04:14:53

标签: javascript reactjs loops

我有一个对象数组和一个字符串数组。我需要根据对象中的值从字符串数组中删除某些元素。

这需要在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”。我该怎么办?

1 个答案:

答案 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... */)