首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Dart/Flutter中基于一个键合并两个对象数组

如何在Dart/Flutter中基于一个键合并两个对象数组
EN

Stack Overflow用户
提问于 2020-12-07 18:44:20
回答 1查看 1.3K关注 0票数 0

我有两个映射数组,其中一个包含产品I和数量;另一个包含产品I、产品名称和价格:

代码语言:javascript
复制
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 }
];

现在,我需要通过获得价格*数量的和来组合两个数组,从而获得产品的总价格。

我需要一个类似下面的数组:

代码语言:javascript
复制
List<Map<String, dynamic>> arr3 =[
   { id: "1", name:"First Item", price: 10, quantity: 1 },
   { id: "2", name: "Second Item", price: 12, quantity: 3 }
];

如何根据它们的I将它们合并到一个数组中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-07 19:01:17

您可以通过将第一个数组映射到第二个数组来合并数组。

代码语言:javascript
复制
  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://dartpad.dev/67148d132cb930bc6f1cee6a8a4fcff1

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65180217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档