Фильтр Sub Array of Array - PullRequest
       18

Фильтр Sub Array of Array

1 голос
/ 09 марта 2019

Я пытаюсь отфильтровать вложенный массив родительского массива, и мои результаты возвращаются пустыми. Я пытаюсь найти совпадения с color_family.

Мой массив выглядит так:

const arr =[
  {
    "id": 123,
    "acf": {
      "product_colors": [
        {
          "color_family": "grey"
        },
        {
          "color_family": "taupe"
        }
      ]
    }
  },
  {
    "id": 456,
    "acf": {
      "product_colors": [
        {
          "color_family": "red"
        },
        {
          "color_family": "taupe"
        }
      ]
    }
  }
]

Что я фильтрую, так это

const findColors = ["grey", "taupe"]

То, что я пытался без удачи, это

const res = arr.filter(
  x => x.acf.product_colors.find(
    color_family => findColors.includes(color_family)
  )
)

Это не возвращает результатов, когда должно возвращать 2 результата. Может ли кто-нибудь указать мне правильное направление?

1 Ответ

3 голосов
/ 09 марта 2019

В дополнение к опечатке, параметру аргумента find является объект с color_family:

const res = arr.filter(x => x.acf.product_colors.find(col => {
  return findColors.includes(col.color_family);
}))
...