我有两个映射数组,其中一个包含产品I和数量;另一个包含产品I、产品名称和价格:
List<Map<String, dynamic>> arr1 = [
{ id: "1", name:"First Item", price: 10 },
{ id: "2", name: "Second Item", price: 12 }
];
List<Map<String, dynamic>> arr2 = [
{ id: "1", quantity: 1 },
{ id: "2", quantity: 3 },
{ id: "3", quantity: 2 }
];现在,我需要通过获得价格*数量的和来组合两个数组,从而获得产品的总价格。
我需要一个类似下面的数组:
List<Map<String, dynamic>> arr3 =[
{ id: "1", name:"First Item", price: 10, quantity: 1 },
{ id: "2", name: "Second Item", price: 12, quantity: 3 }
];如何根据它们的I将它们合并到一个数组中?
发布于 2020-12-07 19:01:17
您可以通过将第一个数组映射到第二个数组来合并数组。
final arr3 = arr1.map((product) {
final quantity = arr2
.where((quantities) => quantities["id"] == product["id"])
.map((quantities) => quantities["quantity"] as int)
.first;
return product..["quantity"] = quantity;
});https://stackoverflow.com/questions/65180217
复制相似问题