gpt4 book ai didi

javascript - 删除重复的 ID?

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:29 24 4
gpt4 key购买 nike

为什么传播没有消除项目中的重复项?

我正在使用 spread 来合并两个变量 resultAresultB。 DataA和DataB中有两个重复的Id(222),使用spread时应将其删除。为什么没有发生以及如何解决这个问题?

const DataA = [
{ Id: 111, Name: 'A' },
{ Id: 222, Name: 'B' },
{ Id: 333, Name: 'C' }
]

const DataB = [
{ Id: 999, Name: 'A' },
{ Id: 222, Name: 'B' },
{ Id: 444, Name: 'C' }
]

let resultA = (DataA || []).map(item => item.Id);
let resultB = (DataB || []).map(item => item.Id);

const items = [
...resultA,
...resultB,
]

const mapping = {
Total: items.length,
Items: items.map(item => { return { Id: item }})
}

console.log(mapping);

预期结果:

{ Total: 5,
Items:
[ { Id: 111 },
{ Id: 222 },
{ Id: 333 },
{ Id: 999 },
{ Id: 444 } ]
}

最佳答案

数组上的扩展语法不会删除重复项。要获得您想要的结果,请添加一行items = [...new Set(items)] 在项目之后

const DataA = [
{ Id: 111, Name: 'A' },
{ Id: 222, Name: 'B' },
{ Id: 333, Name: 'C' }
]

const DataB = [
{ Id: 999, Name: 'A' },
{ Id: 222, Name: 'B' },
{ Id: 444, Name: 'C' }
]

let resultA = (DataA || []).map(item => item.Id);
let resultB = (DataB || []).map(item => item.Id);

let items = [
...resultA,
...resultB,
]

items = [...new Set(items)] // this will remove duplicates

const mapping = {
Total: items.length,
Items: items.map(item => { return { Id: item }})
}

console.log(mapping);

关于javascript - 删除重复的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60422857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com