【问题标题】:Flutter Map Is there any way two add two different values with same key nameFlutter Map 有没有办法两个添加具有相同键名的两个不同值
【发布时间】:2022-11-22 21:02:21
【问题描述】:

颤振图

我的这个值正在改变

    mapList.addAll({
          'item_name[]':shopping_item_name[i],
          'item_description[]':shopping_quantity[i],
          'item_price[]':shopping_unitPrice[i],
        });

寻找这样的输出 {'item_name[]': 'Arpit', 'item_name[]': 'Rnjeet', 'item_name[]': 'Prabhat', 'item_name[]': 'Rohan', 'item_description[]': '2', 'item_description[]': '3', 'item_description[]': '10', 'item_description[]': '3', 'item_price[]': '1', 'item_price[]': '1', 'item_price[]': '1', 'item_price[]': '1',}

【问题讨论】:

  • 这是不可能的,你为什么要那样做?
  • 卡在 api 中,而 API 需要这种数据。

标签: flutter flutter-layout flutter-dependencies flutter-web flutter-test


【解决方案1】:

与其尝试在同一个 Map 中设置相同的键,不如考虑将其设为 Map<String, List<String>>,您将在 List<String> 上使用相同的键保存所有值,如下所示:

void main() {
  final myMap = <String, List<int>>{};

  addValue(myMap, 'key1', 1);
  addValueToMap(myMap, 'key1', 24);
  addValueToMap(myMap, 'key2', 35);
  addValueToMap(myMap, 'key1', 12);
  addValueToMap(myMap, 'key2', 112);

  
  print(myMap); // {key1: [1, 24, 12], key2: [35, 112],}
}

     void addValue<K, V>(Map<K, List<V>> map, K key, V value) =>
    map.update(key, (list) => list..add(value), ifAbsent: () => [value]
      );

【讨论】:

    猜你喜欢
    • 2022-08-16
    • 2019-06-15
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2016-06-22
    • 2019-12-26
    相关资源
    最近更新 更多