【发布时间】:2021-08-16 19:48:49
【问题描述】:
我已成功检索到包含产品的数组(按 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)
【问题讨论】:
-
用户过滤器使用
arr.length > 0或简单的arr.length。 -
您的目标是创建一个包含所有
productList数组中的对象的数组吗?你期待什么输出?我问是因为我相信逻辑可以简化,并且可以通过修改生成逻辑来避免空数组的问题,而无需filter() -
看起来您的
var product = productList.map应该在映射var product = productList.filer( p => check you have data).map(p ....)之前先过滤,因为映射函数将返回所有项目的条目 -
@RoryMcCrossan 我的目标是从所有产品列表中检索产品对象
-
@developer 好的,我将尝试先检查数据,然后按照您的建议进行映射
标签: javascript jquery arrays json mapping