首页 > 解决方案 > javascript中只有唯一的对象

问题描述

这是否可以使用与下面类似的功能,该功能将返回两个属性而无需创建第二个数组。第二个属性名称将始终相同。

const data = [{
    Group: 'A',
    Name: 'SEAN'
}, {
    Group: 'B',
    Name: 'PAUL'
}, {
    Group: 'A',
    Name: 'SEAN'
}, {
    Group: 'B',
    Name: 'PAUL'
}];

let unique = [...new Set(data.map(item => item.Group))];
console.log(unique);

return ["A", "B"]

https://codepen.io/vlad-bezden/pen/OMEXJz

我正在尝试返回

  [{
   Group: 'A',
   Name: 'SEAN'
   }, 
 {
   Group: 'B',
   Name: 'PAUL'
 }]

标签: javascript

解决方案


你可以使用一个forEach

这里的想法是included用来跟踪添加到op. 然后我们检查该组是否已经在included对象中,如果是我们什么都不做,否则我们将它添加到op.

const data = [{Group: 'A', Name: 'SEAN'}, { Group: 'B', Name: 'PAUL'}, { Group: 'A',Name: 'SEAN'}, {Group: 'B',Name: 'PAUL'}];

let op = []
let included = {}

data.forEach((e)=>{
  if( !included[e.Group] ){
    op.push(e)
    included[e.Group] = true
  }
})

console.log(op)


推荐阅读