首页 > 解决方案 > 从多个对象数组中获取唯一值

问题描述

在 NodeJS 网络应用程序上工作,并试图从我的后端数据集中获取一些信息。以下是 Mongoose 模型的相关部分:

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'
]

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

标签: javascriptnode.jsmongoose

解决方案


这是一种方法:

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

我们使用的是原生Set对象,它总是保证唯一的值。另一种方法是使用外部库,例如lodash.


推荐阅读