ES6 - la recherche de données dans des tableaux imbriqués

Dans l'ES6 à l'aide de find ou filter je suis très à l'aise à itérer pour trouver un élément dans un tableau à l'aide d'une valeur.

Cependant, je vais essayer d'obtenir une valeur d'un tableau parent basée sur une valeur d'un tableau imbriqué.

Par exemple, dans cette structure de données:

products: [
  {
    id: 01,
    items: [
      {
        id: 01,
        name: 'apple'
      },
      {
        id: 02,
        name: 'banana'
      },
      {
        id: 03,
        name: 'orange'
      }
    ]
  },
  {
    id: 02,
    items: [
      {
        id: 01,
        name: 'carrot'
      },
      {
        id: 02,
        name: 'lettuce'
      },
      {
        id: 03,
        name: 'peas'
      }
    ]
  },
  {
    id: 03,
    items: [
      {
        id: 01,
        name: 'eggs'
      },
      {
        id: 02,
        name: 'bread'
      },
      {
        id: 03,
        name: 'milk'
      }
    ]
  }
]

Si je sais que les name ou id de l'objet milk, est-il un moyen de trouver l'id de l'élément imbriqué à l'intérieur?

Actuellement j'ai ceci:

products.find((product) => {
  product.find((prod) => {
    return prod.name === 'milk';
  });
});

Qui retourne uniquement l'objet contenant milk.

OriginalL'auteur Toby | 2016-10-13