从嵌套地图对象javascript中删除重复项

Posted

技术标签:

【中文标题】从嵌套地图对象javascript中删除重复项【英文标题】:Remove duplicates from nested map objects 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 【参考方案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) 时,我可以看到想要的结果,但是实际上并没有呈现任何内容...

以上是关于从嵌套地图对象javascript中删除重复项的主要内容,如果未能解决你的问题,请参考以下文章

javascript 从javascript中的对象数组中删除重复项

使用 JavaScript 从数组中删除所有重复项 [重复]

获取嵌套数组/对象的数组中的所有唯一值(删除重复项)

从Python中的嵌套列表中删除连续的重复项?

删除嵌套组中的重复项

从 Python 列表中删除重复项