【问题标题】:Spreading elements with no duplicates in Javascript在 Javascript 中传播没有重复的元素
【发布时间】:2022-11-18 07:06:30
【问题描述】:

我正在寻找删除重复项的方法。我发现一种常见的方法是创建一个 Set,然后散布到一个新的 Array 中。

我怎样才能完成这个目的?例如,我有以下代码:

const tmp1=[];
const tmp2=[{
    guid:"e695d848-7188-4741-9c95-44bec634940f",
    name: "Spreading.pdf",
    code: "G1"
  }];
const tmp = [...new Set([...tmp1],[...tmp2])]; //This should remove duplicates, but gets empty array
const x = [...tmp1, ...tmp2]; // This would keep duplicates

问题是因为 tmp1 是一个空数组,所以我得到的结果是空的。但是,如果我执行以下操作,则会得到正确的结果:

const tmp = [...new Set(...tmp1,[...tmp2])];

我认为这里缺少一些东西。

谢谢

【问题讨论】:

  • 什么是对象重复?所有的属性都一样吗?
  • 在示例中没有重复项(我想问题的标题具有误导性)。问题是在 Set 中传播一个空数组时,该数组用于避免可能的重复。
  • 如果将其设置为const tmp = [...new Set([...tmp1, ...tmp2])],它将起作用,但仅适用于原始值。
  • 什么是重复的例子????对象不适用于集合。有很多方法可以处理它,但是是什么让它成为一个骗局。

标签: javascript reactjs


【解决方案1】:

Set 应该带 1 个参数,但它带 2 个参数,将它们合并为一个:

const tmp = [...new Set([...tmp1, ...tmp2])]; 

【讨论】:

  • 它会在数组上工作吗对象
  • @kinduser nope set 不会删除重复的对象,但只是提及他的错误将更新帖子,并以适当的方式从对象数组中删除重复的对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
相关资源
最近更新 更多