如何从数组中排除空数组?

How can I exclude empties arrays from an array?

我已成功检索到包含产品的数组(按 ID 过滤),但我在输出中也得到了空数组。

这里是我为这个例子写的一段代码:

var category = [{
    "reference": 'BC-ENFANT',
    "name": 'Pour les Enfants',
    "description": 'Soins pour les enfants...',
    "id": 155,
    "productList": [{
        "id": 13655,
        "reference": 'PROD_ENFANT_01',
        "name": 'Brushing'
      },
      {
        "id": 13656,
        "reference": 'PROD_ENFANT_03',
        "name": 'Soins'
      },
    ]
  },

  {
    "reference": 'BC-FEMME',
    "name": 'Pour les Femmes',
    "description": 'Prestations pour les femmes',
    "id": 154,
    "productList": [{
        "id": 13657,
        "reference": 'PROD_ENFANT_01',
        "name": 'Brushing'
      },
      {
        "id": 13658,
        "reference": 'PROD_ENFANT_03',
        "name": 'Soins'
      },
    ]
  }
];

var productList = category.map(p => {
  return p.productList
});
var product = productList.map(p => p.filter(p => p.id === 13657).map(pp => {
  return {
    Reference: pp.reference,
    Name: pp.name,
    Quantity: 1
  }
}));
console.log(product)

My goal is to retrieve the product object from all the productList

在这种情况下,您可以使用 map() 创建它们的多维数组,然后 flat() 将其组合成一维数组,如下所示:

var category = [{"reference":'BC-ENFANT',"name":'Pour les Enfants',"description":'Soins pour les enfants...',"id":155,"productList":[{"id":13655,"reference":'PROD_ENFANT_01',"name":'Brushing'},{"id":13656,"reference":'PROD_ENFANT_03',"name":'Soins'},]},{"reference":'BC-FEMME',"name":'Pour les Femmes',"description":'Prestations pour les femmes',"id":154,"productList":[{"id":13657,"reference":'PROD_ENFANT_01',"name":'Brushing'},{"id":13658,"reference":'PROD_ENFANT_03',"name":'Soins'}]}];

var productList = category.map(p => p.productList).flat();
console.log(productList)