Как получить movies из объекта?

есть бд в формате JSON. Мне необходимо получить уникальные movies по всем героям.

Как это сделать?

[
  {
    "name": "Ancient One",
    "species": "human",
    "gender": "Female",
    "birthDay": "1316",
    "deathDay": "2017",
    "status": "deceased",
    "actors": "Tilda Swinton",
    "photo": "dbimage/DS_Ancient_One_Poster_cropped.png",
    "movies": [
      "Doctor Strange",
      "Avengers: Endgame"
    ]
  },
  {
    "name": "Ant-Man",
    "realName": "Scott Edward Harris Lang",
    "species": "human",
    "citizenship": "American",
    "gender": "male",
    "status": "alive",
    "actors": "Paul Rudd",
    "photo": "dbimage/AntMan-EndgameProfile.jpg",
    "movies": [
      "Ant-Man",
      "Captain America: Civil War",
      "Ant-Man and the Wasp",
      "Avengers: Endgame"
    ]
  },
  {
    "name": "Black Panther",
    "realName": "T'Challa",
    "species": "human",
    "citizenship": "Wakandan",
    "gender": "male",
    "status": "alive",
    "actors": "Chadwick Boseman",
    "photo": "dbimage/Black_Panther_AIW_Profile.jpg",
    "movies": [
      "Captain America: Civil War",
      "Black Panther",
      "Avengers: Infinity War",
      "Avengers: Endgame"
    ]
  },
]

Ответы (1 шт):

Автор решения: Александр

Получите массив всех героев и оставьте уникальных new Set([arr])

const heros = [
  {
    "name": "Ancient One",
    "species": "human",
    "gender": "Female",
    "birthDay": "1316",
    "deathDay": "2017",
    "status": "deceased",
    "actors": "Tilda Swinton",
    "photo": "dbimage/DS_Ancient_One_Poster_cropped.png",
    "movies": [
      "Doctor Strange",
      "Avengers: Endgame"
    ]
  },
  {
    "name": "Ant-Man",
    "realName": "Scott Edward Harris Lang",
    "species": "human",
    "citizenship": "American",
    "gender": "male",
    "status": "alive",
    "actors": "Paul Rudd",
    "photo": "dbimage/AntMan-EndgameProfile.jpg",
    "movies": [
      "Ant-Man",
      "Captain America: Civil War",
      "Ant-Man and the Wasp",
      "Avengers: Endgame"
    ]
  },
  {
    "name": "Black Panther",
    "realName": "T'Challa",
    "species": "human",
    "citizenship": "Wakandan",
    "gender": "male",
    "status": "alive",
    "actors": "Chadwick Boseman",
    "photo": "dbimage/Black_Panther_AIW_Profile.jpg",
    "movies": [
      "Captain America: Civil War",
      "Black Panther",
      "Avengers: Infinity War",
      "Avengers: Endgame"
    ]
  },
]

const movies = heros.map( hero => hero.movies).reduce( (summ, el) => [...summ, ...el])

const uniqHeroes = new Set(movies)

console.log(uniqHeroes)

Вариант с flatMap:

const movies = heros.flatMap( hero => hero.movies)

const uniqHeroes = new Set(movies)

console.log(uniqHeroes)

→ Ссылка