从嵌套地图对象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中的对象数组中删除重复项