jeerjmin
@jeerjmin

Как применить filter к вложенному массиву?

Здравствуйте, у меня есть массив
const cards = [
     {id:1 ,name: 'Product A', image: 'pic-001.jpg', tags: [tag: 'nature', id: f1fz2]},
     {id:2 ,name: 'Product B', image: 'pic-002.jpg', tags: [tag: 'nature', id: 2fs]},
     {id:3 ,name: 'Product C', image: 'pic-003.jpg', tags: [tag: 'nature', id: f11fdfz2]}
   ]


Я хочу осуществить поиск по полю name и по значениям поля tag внутри tags
С полем name нет вопросов, я делаю так

const name='Product A'
this.setState({
        cards:  cards.filter(item => item.name.includes(tag))
      })


А как применить фильтр к tag внутри tags и полю name ?
Хожу вокруг функций map , forEach но в голову не лезет решение, помогите!!
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
0xD34F
@0xD34F
Можно точно так же, как и с name - метод includes, он и у массивов есть:
cards.filter(n => n.tags.includes(tag))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
.
let foo = cards.filter(item =>
  item.tags.includes('winter')
  && // <-- magic is here
  item.name.includes('Product B')
)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Biganto Москва
от 130 000 до 130 000 руб.
от 2 500 до 4 000 usd.
HTML Academy Москва
от 85 000 до 100 000 руб.
14 авг. 2018, в 10:57
2400 руб./за проект
14 авг. 2018, в 10:44
3000 руб./за проект
14 авг. 2018, в 09:38
5000 руб./за проект