【问题标题】:How to remove duplicate object from array in JavaScript如何在 JavaScript 中从数组中删除重复的对象
【发布时间】:2021-12-07 22:09:45
【问题描述】:

我正在处理一个数组,实际上,我有一个下拉列表。我正在将该对象推入一个数组,但实际上当我选择它时它会同时显示两个元素时我面临一个问题,就像在下拉列表中假设我是否有选项(选项 1、选项 2、选项 3)。例如,我选择了 option1,它将对象值推送为 option1,但是当我选择 option2 时,它也将其推送到数组中。我想要唯一的值,比如如果我选择 options2 它应该是选择最近的值。

 generateExtraFieldData = (data, name, index, type, value, values) => {
const { projectFloorData, unitModifiedData } = this.state
let obj = projectFloorData[name]
obj['data'] = data
let tempArr = [...unitModifiedData]

tempArr.push(obj)

this.setState({ unitModifiedData: this.uniqueFiles(tempArr) })

// projectFloorData[name].data = data

}

 uniqueFiles = (data) => {
    let unique = _.uniqBy(data, 'index')
    console.log('@@ array', unique)
    return unique
  }

我使用过 lodash,但它只返回 ist selected 值,我需要一个最近的值,例如用户第二次选择的值

【问题讨论】:

  • 尽量尊重他人:你所有的问题似乎都是“我有紧急情况”,但似乎你并没有真正了解你所使用的语言或工具使用。你不能一直以“我是初学者”为借口不理解你打算做的事情。有时你必须投入工作并学习。

标签: javascript reactjs ecmascript-6


【解决方案1】:

尝试使用yourArray.length = 1;,这会将您的数组限制为 int 限制。如果您选择其他选项,只需执行 yourArray.length = 0 清除数组,然后再次执行 yourArray.length = 1; 以存储新选项。

【讨论】:

  • 你能编辑这段代码吗,对不起,我是 JS 的初学者
  • 您能否在我急需时编辑我的代码。
  • 是“tempArr”你放置对象的数组吗?
  • 是的....是的,
【解决方案2】:

如果您想一次选择一个值,为什么要将您选择的值推送到您的数组中,请尝试使用对象而不是数组并更改值/在选择时重新分配值。

【讨论】:

  • 如果问题只是插入了相同的值,那么首先尝试使用值的键过滤数组,然后检查长度是否> 0,然后不要推,否则将对象推入数组;
  • 您能否编辑我的代码,因为我是初学者。我需要解决这个任务。谢谢
  • 能否分享一下具体的样本数据
猜你喜欢
  • 2018-08-15
  • 2021-12-30
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
相关资源
最近更新 更多