【问题标题】:Remove duplicates from nested map objects javascript从嵌套地图对象javascript中删除重复项
【发布时间】:2019-09-12 03:48:41
【问题描述】:

我正在使用看起来像

的嵌套地图在网格上显示数据
{
    this.state.rows.map((qc) =>
        qc.BinsByDayByOrchardsQCs.map((qc2) =>
            qc2.BinsByDayByOrchardsQCsDefects.map((qc3) =>
              {console.log("results", qc3.Defect)}
                <div className="row table">
                    {qc3.Defect}
                </div>
            )
        )
    )
}

返回类似这样的数据

results Scuff results Sunburn results Bruise results Hail damage results Scuff results Sunburn results Bruise results Scuff results Sunburn results Hail damage

如何消除重复项?我试过了

{console.log("unique",[...new Set(qc2.BinsByDayByOrchardsQCsDefects.map((qc3) => qc3.Defect))])} 但这会返回映射对象的每次迭代

【问题讨论】:

  • 你能显示实际数据吗? this.state.rows

标签: javascript arrays reactjs object ecmascript-6


【解决方案1】:

简单的方法是创建一个数组,在其中推送要打印的元素。在打印另一个之前检查它是否存在于数组中。

const arr = [];
{
    this.state.rows.map((qc) =>
        qc.BinsByDayByOrchardsQCs.map((qc2) =>
            qc2.BinsByDayByOrchardsQCsDefects.map((qc3) =>
              {!arr.includes(qc3.Defect) && arr.push(qc3.Defect) &&
                (<div className="row table">
                    {qc3.Defect}
                </div>)
              }
            ) 
        )
    )
}

【讨论】:

  • 使用 {console.log("testing", qc3.Defect)} 时,我可以看到想要的结果,但是实际上并没有呈现任何内容...
猜你喜欢
  • 1970-01-01
  • 2020-04-15
  • 2020-12-07
  • 2021-08-23
  • 1970-01-01
  • 2020-11-03
  • 2020-10-25
  • 2016-10-19
  • 2021-11-27
相关资源
最近更新 更多