如何将Locations[0]作为Sku字段填充到Locations[1]的数组对象中?
解决方案:转换SKU与库存位置数据格式
原始输入数据
[{ "Locations": ["TP-401176509", [{ "WarehouseCode": "01", "LocationCode": "A-04B01-B", "Quantity": 1, "Reserve": false }, { "WarehouseCode": "01", "LocationCode": "A-04B02-A", "Quantity": 1, "Reserve": false }, { "WarehouseCode": "01", "LocationCode": "A-04B13-A", "Quantity": 1, "Reserve": false }]] }]
预期输出格式
[{ "Sku": "TP-401176509", "WarehouseCode": "01", "LocationCode": "A-04B01-B", "Quantity": 1, "Reserve": false }, { "Sku": "TP-401176509", "WarehouseCode": "01", "LocationCode": "A-04B02-A", "Quantity": 1, "Reserve": false }, { "Sku": "TP-401176509", "WarehouseCode": "01", "LocationCode": "A-04B13-A", "Quantity": 1, "Reserve": false }]
实现代码
const rawData = [{ "Locations": ["TP-401176509", [{ "WarehouseCode": "01", "LocationCode": "A-04B01-B", "Quantity": 1, "Reserve": false }, { "WarehouseCode": "01", "LocationCode": "A-04B02-A", "Quantity": 1, "Reserve": false }, { "WarehouseCode": "01", "LocationCode": "A-04B13-A", "Quantity": 1, "Reserve": false }]] }]; const transformedData = rawData.flatMap(item => { const sku = item.Locations[0]; const locations = item.Locations[1]; return locations.map(location => ({ Sku: sku, ...location })); }); console.log(transformedData);
代码说明
- 用
flatMap遍历原始数组,同时展开结果数组,避免嵌套结构; - 从每个
Locations数组中提取SKU(item.Locations[0])和位置详情列表(item.Locations[1]); - 通过
map给每个位置对象添加Sku字段,同时保留原有属性。
如果原始数据包含多个SKU条目,该逻辑会自动处理所有条目并合并结果。
内容的提问来源于stack exchange,提问作者Nick Nikiforov
相关产品推荐
相关产品推荐

