从多个对象数组获取唯一值

时间:2020-06-16 14:37:11

标签: javascript node.js mongoose

正在使用NodeJS Web应用程序,正在尝试从后端数据集中获取一些信息。这是猫鼬模型相关部分的样子:

gameLog: [
  {
     date: String,
     season: String,
     location: String,
     opp: String,
     gameType: String,
     result: String,
     start: Number,
     min: Number,
     fgm: Number,
     fga: Number,
     fgp: Number,
     twoPM: Number,
     twoPA: Number,
     twoP: Number,
     threePM: Number,
     threePA: Number,
     threeP: Number,
     ftm: Number,
     fta: Number,
     ftp: Number,
     orb: Number,
     drb: Number,
     ast: Number,
     stl: Number,
     blk: Number,
     to: Number,
     pf: Number,
     pts: Number
  }

]

用于存储盒分数。如何搜索每个对象的season字段并返回一个包含该字段唯一值的数组?当我使用地图搜索路线上请求的player的数据时,它返回:

let seasons = foundPlayer.gameLog.map(({
    season}) => season);

// Output

[
  '2019', '2019', '2019', '2019', '2019',
  '2019', '2019', '2019', '2019', '2019',
  '2019', '2019', '2019', '2019', '2019',
  '2019', '2019', '2019', '2019', '2019',
  '2019', '2019', '2019', '2019', '2019',
  '2019', '2020', '2020', '2020', '2020',
  '2020', '2020', '2020', '2020', '2020',
  '2020', '2020', '2020', '2020', '2020',
  '2020', '2020', '2020', '2020', '2020',
  '2020', '2020', '2020', '2020', '2020',
  '2020', '2020', '2020', '2020', '2020',
  '2020', '2020', '2020'
]

因此,我需要数组的唯一值,而不是数组中每个季节的实例。我在这里想念什么?预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这里是一种方法:

let seasons = [...(new Set(foundPlayer.gameLog.map(({
    season}) => season)))];

我们正在使用本地Set对象,该对象始终保证唯一的值。另一种方法是使用lodash之类的外部库。