首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用省道映射地图的返回

如何用省道映射地图的返回
EN

Stack Overflow用户
提问于 2022-01-03 11:04:46
回答 2查看 93关注 0票数 1

我试图映射一个映射的返回,但它看起来像第一个映射,不返回迭代的结果。我在这里有点困惑。

我试试那个密码。它只需迭代“行”并返回迭代的数据:

代码语言:javascript
复制
void main() {
  final Map<String, dynamic> treeData = {
    "title": "test",
    "row": [
      [
        {
          "img":
              "https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
        },
        {
          "img":
              "https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg"
        }
      ],
      [
        {
          "img":
              "https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
        }
      ]
    ],
  };

var mappedData = treeData['row'].map((data) {
    print("");
    print("!!!!!!!!!!!!!!!!!!!");
    print(data);
    return data;
  }).toList().map((data) {
    print("");
    print("-------------------");
    print(data);
    return data;
  }).toList();
  
  print("");
  print("???????????");
  print(mappedData);
}

我得到的结果与我所期望的不一样。正如您所看到的,这两个迭代看起来是完全相同的。

代码语言:javascript
复制
!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}]

!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]

-------------------
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}]

-------------------
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]

???????????
[[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}], [{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]]

我希望有这样的东西,第二次迭代遍历第二个数组并返回对象值。

代码语言:javascript
复制
!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}, {img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}]

!!!!!!!!!!!!!!!!!!!
[{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}]

-------------------
{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}
{img: https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg}

-------------------
{img: https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg}

有办法让它这样运作吗?最好的选择是什么?

谢谢你的回答。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-04 22:09:52

哦,我觉得很晚了,当我问这个问题的时候我很累。我发现了我对我的问题的解决办法。

代码语言:javascript
复制
                Row(children: [
              ...treeData['row']
                  .map((data) => Column(children: [
                        ...data.map((item) => Image.network(
                              item['img'],
                              fit: BoxFit.cover,
                              alignment: Alignment.topCenter,
                            ))
                      ]))
                  .toList()

很简单很容易..。似乎有时候我们需要睡觉,伙计们(我)。><

票数 0
EN

Stack Overflow用户

发布于 2022-01-03 11:43:44

是的,有一种方法可以让它这样运作:

代码语言:javascript
复制
void main() {
  final Map<String, dynamic> treeData = {
    "title": "test",
    "row": [
      [
        {
          "img":
              "https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
        },
        {
          "img":
              "https://cdn.pixabay.com/photo/2015/03/27/13/16/maine-coon-694730_960_720.jpg"
        }
      ],
      [
        {
          "img":
              "https://cdn.pixabay.com/photo/2014/11/30/14/11/cat-551554_960_720.jpg"
        }
      ]
    ],
  };

  var mappedData = treeData['row']
      .map((data) {
        print("");
        print("!!!!!!!!!!!!!!!!!!!");
        print(data);
        return data;
      })
      .toList()
      .map((data) {
        for (var item in data) {
          print("");
          print(item);
        }
        print("-------------------");

        return data;
      })
      .toList();

  print("");
  print("???????????");
  print(mappedData);
}

本质上,您希望打印要传递给第二个函数的列表中的每一项。您将获得第二次迭代的相同结果,因为您正在将第一次迭代的输出转换为函数正在接收的相同输入。

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

https://stackoverflow.com/questions/70564814

复制
相关文章

相似问题

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