将Flutter的可迭代(map)结果添加到List数组中。

huangapple go评论86阅读模式
英文:

Add Flutter Iterable map result into List Array

问题

我们有这个可迭代对象:

  Iterable<void> intoarray = listaMap.interests!.map((f) => f['id']);
  print(intoarray); <--- 结果:flutter: (1, 3, 4)

我想将结果添加到这个数组中:

  List<int?> arrayValues = [];
  arrayValues.add(intoarray 中的元素结果)

我应该对其进行整数解析吗?如何将这些结果放入数组中?一次一个还是一次性全部放入?

英文:

We have this iterable:

  Iterable&lt;void&gt; intoarray = listaMap.interests!.map((f) =&gt; f[&#39;id&#39;]);
  print(intoarray); &lt;--- result: flutter: (1, 3, 4)

And I want add the result into this array:

  List&lt;int?&gt; arrayValues = [];
  arrayValues.add(intoarray result elements)

Should I parse to int for this? How can I put this results int Array? One by One or everything at once?

答案1

得分: 0

这是你问题的一个可能解决方案。

    void main(){
      final List<Map<String, dynamic>> listaMap = [
        {
          "id":1,
        },
        {
          "id":2,
        },
        {
          "id":3,
        }
      ];
      // 你的代码
      //Iterable<void> intoArray = listaMap.map((f) => f['id']);
      //print(intoArray);
      
      //解决方案
    //   // 如果id总是int
    //   List<int> arrayValues = listaMap.map((f) => f['id'] as int).toList();
    //   // 如果id可为空
    //   List<int?> arrayValues = listaMap.map((f) => f['id'] as int?).toList();
      
      // 如果id是String
    //   List<int?> arrayValues = listaMap.map((f) => int.tryParse(f['id'])).toList();
    //   print(arrayValues);
      
      // 如果id是动态的
      List<int?> arrayValues = listaMap.map((f) {
        final id = f['id'];
        if (id is int){
          return id;
        }else if (id is String){
          return int.tryParse(id);
        }
        return null;
      }).toList();
      print(arrayValues);
    }
英文:

Heres a posible solution for your question.

void main(){
  final List&lt;Map&lt;String, dynamic&gt;&gt; listaMap = [
    {
      &quot;id&quot;:1,
    },
    {
      &quot;id&quot;:2,
    },
    {
      &quot;id&quot;:3,
    }
  ];
  // Your code
  //Iterable&lt;void&gt; intoArray = listaMap.map((f) =&gt; f[&#39;id&#39;]);
  //print(intoArray);
  
  //Solution
//   // if id is always int
//   List&lt;int&gt; arrayValues = listaMap.map((f) =&gt; f[&#39;id&#39;] as int).toList();
//   // if id is nullable
//   List&lt;int?&gt; arrayValues = listaMap.map((f) =&gt; f[&#39;id&#39;] as int?).toList();
  
  // if id is String
//   List&lt;int?&gt; arrayValues = listaMap.map((f) =&gt; int.tryParse(f[&#39;id&#39;])).toList();
//   print(arrayValues);
  
  // if id is dynamic
  List&lt;int?&gt; arrayValues = listaMap.map((f) {
    final id = f[&#39;id&#39;];
    if (id is int){
      return id;
    }else if (id is String){
      return int.tryParse(id);
    }
    return null;
  }).toList();
  print(arrayValues);
}

huangapple
  • 本文由 发表于 2023年3月9日 22:53:00
  • 转载请务必保留本文链接:https://go.coder-hub.com/75686255.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定