flutter对数组中某个数据二次加工成单独的数组

这篇具有很好参考价值的文章主要介绍了flutter对数组中某个数据二次加工成单独的数组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        如何将数据[2,1,2,2,2,1,2,2,3,2,2,2,2,3,2,2,2,2,2,3,2,4,2,2,1,2,3,2,4,2]加工成

[[2], 1, [2, 2, 2], 1, [2, 2], 3, [2, 2, 2, 2], 3, [2, 2, 2, 2, 2], 3, [2], 4, [2, 2], 1, [2], 3, [2], 4, [2]]。这是实际工作中遇到的问题,UI要求将某类型数据(如上述数组中的2)用宫格(GridView)展示,其他类型数据用列表(ListView)展示,实际结果就是在一个ListView中嵌套很N个GridView。

        代码运行结果:

flutter对数组中某个数据二次加工成单独的数组,flutter开发笔录,flutter

         完整代码:

Future<void> main(List<String> args) async {
  List<int> intList = [2,1,2,2,2,1,2,2,3,2,2,2,2,3,2,2,2,2,2,3,2,4,2,2,1,2,3,2,4,2];
  arrayProcess(intList,2);
}
///intList,加工的数组
///加工的数据
List<Object> arrayProcess(List<int> intList,int num){
  List<Object> ints = [];
  int times = 1;
  List<int> temp = [];
  for(int i=0;i<intList.length;i++){
    if(i < (intList.length -1)){
      if(intList[i]==intList[i+1] && intList[i]==num){
        times= times+1;
        temp.add(intList[i]);
      }else {
        if(times>1){
          if(temp.length>0){
            temp.add(intList[i]);
            List<int> _temp = [];
            temp.forEach((element) {
              _temp.add(element);
            });
            ints.add(_temp);
            temp.clear();
          }

          times = 1;
        }
        else{
          if(intList[i]==num){
            temp.add(intList[i]);
            List<int> _temp = [];
            temp.forEach((element) {
              _temp.add(element);
            });
            ints.add(_temp);
            temp.clear();
          }
          else{
            ints.add(intList[i]);
            times = 1;
          }
        }
      }
    }
    else{
      if(times>1){
        if(temp.length>0){
          temp.add(intList[i]);
          List<int> _temp = [];
          temp.forEach((element) {
            _temp.add(element);
          });
          ints.add(_temp);
          temp.clear();
        }

        times = 1;
      }
      else{
        if(intList[i]==num){
          temp.add(intList[i]);
          List<int> _temp = [];
          temp.forEach((element) {
            _temp.add(element);
          });
          ints.add(_temp);
          temp.clear();
        }
        else{
          ints.add(intList[i]);
          times = 1;
        }
      }
    }
  }
  print(ints.toString());
  return ints;
}

        客户端展示:宫格展示UI要求一行展示两个,所以先根据记录数计算出GridView总高度,以确定高度,并且GridView是禁止滑动的,这样就可以在一个ListView插入N个GridView。文章来源地址https://www.toymoban.com/news/detail-667816.html

到了这里,关于flutter对数组中某个数据二次加工成单独的数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web开发基础笔录(2)-Ruby疑难点(1)

    目录 关于 Ruby rbenv rbenv是类Unix系统上Ruby编程语言的版本管理工具 使用程序包管理器 安装ruby 安装gems 卸载Ruby版本 设置path 安装rails 集成字符串 注释与变量内插 字典HASH 数组 times迭代 想知道 Ruby 为什么会如此受欢迎吗?在粉丝眼中,Ruby 是一门优美而巧妙的语言,他们还认为

    2024年02月12日
    浏览(37)
  • PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    我们可以用 isset($arr[\\\'a\\\']) 或者 array_key_exists(\\\'a\\\', $arr) 来判断 \\\'a\\\' 键名是否存在与 $arr 数组。 那么这两种方式哪个运行速度快呢? 不多废话了,现在我们写一段代码来测试一下: 结论是 isset() 更胜一筹。

    2024年02月02日
    浏览(87)
  • uniapp 中过滤获得数组中某个对象里id:1的数据

    JavaScript中的Array.filter()方法来过滤获取数组中某个对象里id:1的数据 延伸: filter() 创建一个新的数组,新数组的元素是符合指定条件的元素,不会检测空数组,不会改变原来的数组。 map() 返回一个新的数组,新数组的元素是原数组的元素按照顺序依次处理后的值。 foreach() 循

    2024年02月14日
    浏览(37)
  • Flutter 单独页面状态栏颜色改变backgroundColor和statusBarColor

    1.flutter中如果整个应用状态栏颜色是同一种颜色,可以在main方法里设置: 2.有些页面可能需要状态栏颜色和当前页面的颜色接近,需要单独修改,则在页面的appbar里进行设置: 这里backgroundColor和statusBarColor都是改变的是状态栏的颜色,statusBarColor是只生效于Android6.0以上的机器

    2024年02月11日
    浏览(36)
  • flutter 数组数据去重终极解决方案

    在 Flutter 应用程序开发中,处理数据的去重是一个常见的任务。本文将详细介绍 Flutter 中的各种数据去重方法,包括使用 Set、fold 方法、where 方法、自定义函数以及使用第三方库等不同的技巧。每种方法都将提供示例代码和解释,帮助您理解和应用这些方法,以满足不同的需

    2024年02月11日
    浏览(44)
  • JS判断对象、数组是否包含某个属性、某个值

    可以使用以下几种方法来判断对象是否包含某个属性: 1. in 操作符: 使用 in 操作符可以检查对象是否包含指定的属性。它会检查对象及其原型链上的所有属性。 2. hasOwnProperty() 方法: hasOwnProperty() 是对象的内置方法,用于检查对象自身是否具有指定的属性(不包括原型链上

    2024年02月09日
    浏览(73)
  • Autocad C#二次开发煤矿数据处理

    2024年02月10日
    浏览(48)
  • JS中判断某个字符串、数组等是否包含某个值

    方法一: indexOf()   (推荐)   indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二:match()   match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 方法三: search()   search() 方法

    2024年02月03日
    浏览(112)
  • 大数据开发之Hive案例篇14:某个节点HDFS块比较多

    今天早上到公司,突然收到CDH集群某个节点的存储量的告警,如下图所示: 从图中可以看出,每个节点的HDFS空间是相同的,大多节点HDFS使用量在40%左右,而出问题的这个节点居然直逼80%,鉴于之前问题出现过多次,且每次都是利用空余时间使用HDFS的rebalance进行解决的,此处

    2024年02月11日
    浏览(42)
  • 【数据仓库】Windows源码安装DataEase,DataEase二次开发

     上文记录了DataEase入门使用指南,本文主要记录Windows下源码安装及二次开发步骤【数据仓库】BI看板DataEase入坑指南_wenchun001的博客-CSDN博客   GitHub release 链接: Releases · dataease/dataease · GitHub SDK  缺少依赖包 Kettle相关依赖包 https://download.csdn.net/download/wenchun001/88039552 pentaho-m

    2024年02月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包