Javascript 将对象数组合并到单个数组中
我有一个巨大的嵌套对象数组,看起来像这样(再添加76个产品,这就描绘了一幅好画面): 我需要循环查看订单和订单详细信息,并将每个产品的订单合并到单个数组中。一个产品有多个订单,每个订单都有一个订单详细信息,因此我的理想输出如下所示:Javascript 将对象数组合并到单个数组中,javascript,arrays,oop,sorting,Javascript,Arrays,Oop,Sorting,我有一个巨大的嵌套对象数组,看起来像这样(再添加76个产品,这就描绘了一幅好画面): 我需要循环查看订单和订单详细信息,并将每个产品的订单合并到单个数组中。一个产品有多个订单,每个订单都有一个订单详细信息,因此我的理想输出如下所示: { "ProductID": 11, "ProductName": "Queso Cabrales", "SupplierID": 5, "CategoryID": 4, "Quan
{
"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]
}
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]
]}
}
我最大的问题是:
- 在每个orderID中嵌套访问order_详细信息
- 维护一个产品到多个订单的关联(我成功地将所有产品合并到一个巨大的阵列中,它几乎打破了互联网)
{
"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]
}
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]
]}
}
我使用了u.merge和u.assign,但没有成功-如果支持或推动方向正确,我们将不胜感激。我希望我做对了,因此我建议制作一些单独的对象,如产品和订单,其中对象的每个键都是元素的id,因此,您的订单对象如下:
var Orders = {
11:{"ProductID":11,"ProductName":...},
12:{"ProductID":12,"ProductName":...},
}
因此,您可以通过其id轻松地访问订单参数
您可以对订单详细信息执行相同的操作,但我看不出有任何理由不将其属性包含到订单对象中。有趣的方法,我没有想过这样做。我最初的想法是创建一个单独的表数组,每个产品拥有其中一个表,以及该表中产品拥有的订单和订单详细信息数组。我感谢您的输入。但是,我可能会对我的方法感到失望,并尝试您的方法-我会让您不断更新!