【发布时间】:2015-12-21 18:18:51
【问题描述】:
我有一个巨大的嵌套对象数组,看起来像这样(再添加 76 种产品,这描绘了一幅很好的画面):
[
{
"ProductID": 11,
"ProductName": "Queso Cabrales",
"SupplierID": 5,
"CategoryID": 4,
"QuantityPerUnit": "1 kg pkg.",
"UnitPrice": 21,
"UnitsInStock": 22,
"UnitsOnOrder": 30,
"ReorderLevel": 30,
"Discontinued": false,
"orders": [
{
"OrderID": 10248,
"CustomerID": "VINET",
"EmployeeID": 5,
"OrderDate": "1996-07-04T05:00:00.000Z",
"RequiredDate": "1996-08-01T05:00:00.000Z",
"ShippedDate": "1996-07-16T05:00:00.000Z",
"ShipVia": 3,
"Freight": 32.38,
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipRegion": null,
"ShipPostalCode": "51100",
"ShipCountry": "France",
"order_details": {
"OrderID": 10248,
"ProductID": 11,
"UnitPrice": 14,
"Quantity": 12,
"Discount": 0
}
},
{
"OrderID": 10296,
"CustomerID": "LILAS",
"EmployeeID": 6,
"OrderDate": "1996-09-03T05:00:00.000Z",
"RequiredDate": "1996-10-01T05:00:00.000Z",
"ShippedDate": "1996-09-11T05:00:00.000Z",
"ShipVia": 1,
"Freight": 0.12,
"ShipName": "LILA-Supermercado",
"ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo",
"ShipCity": "Barquisimeto",
"ShipRegion": "Lara",
"ShipPostalCode": "3508",
"ShipCountry": "Venezuela",
"order_details": {
"OrderID": 10296,
"ProductID": 11,
"UnitPrice": 16.8,
"Quantity": 12,
"Discount": 0
}
} ... etc.
我需要遍历 Orders 和 Order_Details 并将每个 Product 的订单合并到一个数组中。一个产品有多个订单,每个订单都有一个订单详细信息,所以我的理想输出应该是这样的:
{
"ProductID": 11,
"ProductName": "Queso Cabrales",
"SupplierID": 5,
"CategoryID": 4,
"QuantityPerUnit": "1 kg pkg.",
"UnitPrice": 21,
"UnitsInStock": 22,
"UnitsOnOrder": 30,
"ReorderLevel": 30,
"Discontinued": false,
"OrderID": [10248, 10296]
"CustomerID":[ "VINET", "LILAS"]
"EmployeeID":[ 5, 6]
"OrderDate":[ "1996-07-04T05:[0:[0.000Z", "1996-09-03T05:00:00.000Z"]
"RequiredDate":[ "1996-08-01T05:[0:[0.000Z", "1996-10-01T05:00:00.000Z"]
"ShippedDate":[ "1996-07-16T05:[0:[0.000Z", "1996-09-11T05:00:00.000Z"]
"ShipVia":[ 3, 1]
"Freight":[ 32.38, 0.12]
"ShipName":[ "Vins et alcools Chevalier", "LILA-Supermercado"]
"ShipAddress":[ "59 rue de l'Abbaye", "Carrera 52 con Ave. Bolívar #65-98 Llano Largo"]
"ShipCity":[ "Reims", "Barquisimeto"]
"ShipRegion":[ null, "Lara"]
"ShipPostalCode":[ "51100", "3508"]
"ShipCountry":[ "France", "Venezuela"]
"OrderID":[ 10248, 10296]
"ProductID":[ 11, 11]
"UnitPrice":[ 14, 16.8]
"Quantity":[ 12, 12]
"Discount":[ 0, 0]
}
我最大的问题是:
- 以嵌套在每个 orderID 中的方式访问 order_details
- 维护 1 个产品与多个订单的关联(我设法将所有东西合并到一个巨大的阵列中,它几乎破坏了互联网)
我希望将其发送到客户端以使用 D3 进行可视化。如果您可以使用这样的数据输入来绘制堆积面积图:
var graph = {
Spicy-Ramen: {[
[380.00, 12-March-2015], [420.62, 19-March-2015]
]},
Miso-Soup: {[
[230.99, 12-April-2015], [322.60, 22-May-2015]
]},
Vegetable-Shumai: {[
[22.99, 12-June-2015], [121.20, 29-August-2015]
]}
}
我使用 _.merge 和 _.assign 失败 - 任何支持或朝着正确方向轻推将不胜感激。
【问题讨论】:
标签: javascript arrays oop sorting