'React - Filter Multidimensional array with another array

I want to return only matches results.

My array:

products: [
 {
 "id": 1,
 "name": "Product 1",
 "concepts": [
  {
    "id": 10,
    "name": "Blabla"
  },
  {
    "id": 15,
    "name": "Zlazla"
  }
 ]
 },
 {
 "id": 2,
 "name": "Product 2",
 "concepts": [
  {
    "id": 14,
    "name": "Gulagula"
  },
  {
    "id": 15,
    "name": "Zlazla"
  }
 ]
 }
]

I want to filter products which only have one of the concepts below.

concepts array:

['14', '15']

Couldn't solve this in an easy way.



Solution 1:[1]

You can try this way:

var products=  [
 {
 "id": 1,
 "name": "Product 1",
 "concepts": [
  {
    "id": 10,
    "name": "Blabla"
  },
  {
    "id": 15,
    "name": "Zlazla"
  }
 ]
 },
 {
 "id": 2,
 "name": "Product 2",
 "concepts": [
  {
    "id": 14,
    "name": "Gulagula"
  },
  {
    "id": 15,
    "name": "Zlazla"
  }
 ]
 }
]    

var products = products.filter((product) => product.concepts = product.concepts.filter( (x) => x.id == 14 || x.id == 15));
    
console.log(products);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Tabish Tashfeen