Javascript 仅基于对象中的一个值删除数组中的重复对象
我正在编写一些返回数组中唯一对象的代码 我找到了一些代码,但它并不完全是我需要的 现在假设我有一个数组:Javascript 仅基于对象中的一个值删除数组中的重复对象,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我正在编写一些返回数组中唯一对象的代码 我找到了一些代码,但它并不完全是我需要的 现在假设我有一个数组: restuls= [ { name: "name 1", description: "", group: "group 1" }, { name: "name 1",
restuls= [
{
name: "name 1",
description: "",
group: "group 1"
},
{
name: "name 1",
description: "",
group: "group 1"
},
{
name: "name 1",
description: "",
group: "group 2"
},
]
通过下面的代码,我在这个数组中找到了所有唯一的对象,这意味着,如果对象中的任何值不同,它将是唯一的。因此,在本例中,它将返回2个对象(因为在第3个对象-->组中:“组2”)
我真正想要的是它删除所有重复的对象,但只查看“名称”
因此,在本例中,所有3个对象都具有相同的名称,因此只应显示一个对象
有什么想法吗?
结果=[
{
名称:“名称1”,
说明:“,
小组:“第一组”
},
{
名称:“名称1”,
说明:“,
小组:“第一组”
},
{
名称:“名称1”,
说明:“,
小组:“第2组”
},
]
常量映射=新映射();
results.forEach(x=>{
如果(!map.has(x.name))
{map.set(x.name,x)}
});
const arr=Array.from(map.map)(x=>x[1]);
console.log(arr)
您可以使用for
和Set
-
const输入=
[{name:“name 1”,description:,group:“group 1”},{name:“name 1”,description:,group:“group 1”},{name:“name 1”,description:,group:“group 2”},]
常数结果=
[]
常见=
新集
用于(输入的常数v)
if(见has(v.name))
持续
其他的
(结果.推送(v),见.添加(v.name))
console.log(结果)
“只应显示一个”-哪一个?这是否回答了您的问题?同样相关的还有:
var array = results,
unique = Array.from(
new Set(array.map(o => JSON.stringify(o))),
s => JSON.parse(s)
);