这里总结了一些在 Dart 中常用的数组操作方法,以便查阅。

首先,我们准备两组数据,以方便后面使用:

  1. List<Map> students = [
  2. { 'name': 'tom', 'age': 16 },
  3. { 'name': 'jack', 'age': 18 },
  4. { 'name': 'lucy', 'age': 20 }
  5. ];
  6. List numbers = [2, 8, 5, 1, 7, 3];

本文中用到的 students 及 numbers 均指的是这里已经定义好的,后面不再重复。

forEach()

可以遍历一个数组或者是一个map

  1. students.forEach((student) => print(student));
  2. // {name: tom, age: 16}
  3. // {name: jack, age: 18}
  4. // {name: lucy, age: 20}
  5. Map tom = { 'name': 'tom', 'age': 16 };
  6. tom.forEach((key, value) => print(key + ' - ' + value.toString()));
  7. // name - tom
  8. // age - 16

Map()

可以用来操作已知数组里的每一项,然后返回一个新数组

  1. var messages = students.map((student) => 'Hello ' + student['name']).toList();
  2. print(messages);
  3. // [Hello tom, Hello jack, Hello lucy]

contains()

用于判断数组是否包含某个元素

  1. print(students.contains(5));
  2. // true

sort()

用于排序,接收一个函数当做参数

  1. numbers.sort((num1, num2) => num1 - num2);
  2. print(numbers);
  3. // [1, 2, 3, 5, 7, 8]

reduce(), fold()

  • reduce() 将数组中的每一个值与前面返回的值相加,最后返回相加的总和
  • fold() 用法跟 reduce() 基本一样,只不过是可以提供一个初始值
  1. var sum = numbers.reduce((curr, next) => curr + next);
  2. print(sum);
  3. // 26
  4. var sum2 = numbers.fold(10, (curr, next) => curr + next);
  5. print(sum2);
  6. // 36

every()

用于判断数组中的每一项是否均达到了某个条件

  1. var isAgeOver20 = students.every((student) => student["age"] > 20);
  2. print(isAgeOver20);
  3. // false
  4. var isAgeOver15 = students.every((student) => student["age"] > 15);
  5. print(isAgeOver15);
  6. // true

where(), firstWhere(), singleWhere()

  • where() 返回数组中满足给定条件的元素集合
  • firstWhere() 返回数组中满足给定条件的第一个元素
  • singleWhere() 返回数组中满足给定条件的唯一一个元素,若有多个元素满足条件会抛出异常
  1. var ageOver16 = students.where((student) => student["age"] > 16);
  2. print(ageOver16.toList());
  3. // [{name: jack, age: 18}, {name: lucy, age: 20}]
  4. var ageFirstOver16 = students.firstWhere((student) => student["age"] > 16, orElse: () => null);
  5. print(ageFirstOver16);
  6. // {name: jack, age: 18}
  7. var ageUnder20 = students.singleWhere((student) => student["age"] < 16, orElse: () => null);
  8. print(ageUnder20);
  9. // null

take(), skip()

  • take(n) 从数组里取 n 个元素
  • skip(n) 跳过数组中的 n 个元素
  1. List arr = [1, 3, 5, 2, 7, 9];
  2. print(arr.take(3).toList());
  3. // [1, 3, 5]
  4. print(arr.skip(4).toList());
  5. // [7, 9]
  6. print(arr.take(3).skip(2).take(1).toList());
  7. // [5]

List.from()

克隆一个数组

  1. List arr = [1, 3, 5, 2, 7, 9];
  2. var clonedArr = List.from(arr);
  3. print(clonedArr);
  4. // [1, 3, 5, 2, 7, 9]

expand()

  1. var arr1 = [[2, 5], [7], [11, 12]];
  2. var flattened = arr1.expand((item) => item).toList();
  3. print(flattened);
  4. // [2, 5, 7, 11, 12]
  5. var arr2 = [2, 5, 8];
  6. var computed = arr2.expand((item) => [item * 8]).toList();
  7. print(computed);
  8. // [16, 40, 64]
  9. // 当对每一项进行计算时类似于 map()
  10. var computed2 = arr2.map((item) => item * 8).toList();
  11. print(computed2);
  12. // [16, 40, 64]

add(), addAll()

  • add() 向数组中添加一个元素
  • addAll() 向数组中添加另一个数组的所有元素
  1. >var arr1 = [1, 3, 5, 9, 2, 1];
  2. arr1.add(10);
  3. print(arr1);
  4. // [1, 3, 5, 9, 2, 1, 10]
  5. arr1.addAll([15, 21]);
  6. print(arr1);
  7. // [1, 3, 5, 9, 2, 1, 10, 15, 21]
 
 

4人点赞

 
 

作者:三也视界
链接:https://www.jianshu.com/p/1c7d828b1153
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Dart 中常用的数组操作方法总结的更多相关文章

  1. JavaScript中的常用的数组操作方法

    JavaScript中的常用的数组操作方法 一.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2 ...

  2. PHP中常用的数组函数总结

    整理了一份PHP开发中数组操作大全,包含有数组操作的基本函数,数组的分段和填充,数组与栈,数组与列队,回调函数,排序,计算,其他的数组函数等. 一,数组操作的基本函数 数组的键名和值 array_va ...

  3. js 里常用的数组操作方法

    var ar=[112,44,55,66,77,88,99,'00',77]; var ar1=['ddd','fff','ggg']; //concat() 拼接一个或多个数组: //console ...

  4. js中常用的数组方法

    在数组的尾部增加或删除某个元素:push() 和 pop() push() : 在数组的尾部追加一个或多个元素,并返回数组的长度 pop():在数组的尾部删除一个元素,并返回被删除项 var arr ...

  5. Java中常用的日期操作方法

    日常项目当中经常会用到操作日期,抽出时间总结了一下,欢迎和大家多多沟通学习,如有任何改进意见和建议,我的QQ是1243672,欢迎联系哦. /** * 日期操作类 * 开发公司:北京东达悦科技有限公司 ...

  6. js中常用的操作

    1.js中常用的数组操作 2.js中常用的字符串操作 3.js中常用的时间日期操作 4.定时器

  7. 数组操作方法(包括es5)

    //push(); 定义:可以可向数组的末尾添加一个或更多元素,并返回新的长度. 方法:push(); 语法:数组.push(新元素1,新元素2,....,新元素x) 返回值:把指定的值添加到数组后的 ...

  8. JavaScript常用数组操作方法

    数组是用于储存多个相同类型数据的集合,平时在数据的处理中用到最多,JavaScript 中常用的操作方法 1.concat()concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅 ...

  9. Java数组操作方法收集(快速判断某个值在这个数组中)

    Java数组操作最高效的方式是循环取值,如果转换成集合那么就会分配内存,效率不如前者,但是方法多,需要在性能调优上去权衡.切记:数组是数组,集合是集合. 下面是收集最常用的数组转成集合的操作方法: i ...

随机推荐

  1. 《奋斗吧!菜鸟》 第九次作业:Beta冲刺 Scrum meeting 1

    项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11056511.html 团队名称 奋斗吧!菜鸟 作业学习目标 掌 ...

  2. used to do 与be used to doing /n.

    1.used to do:表示过去的习惯性动作,过去如此,现在不再这样了.常译作“过去常常”.(过去时+动词不定式) He used to play basketball when he was yo ...

  3. vs2010出现红色波浪错误提示但运行通过

    1.环境:xp+VS2010 2.问题:突然发现编辑器里的代码在没有错误的地方提示很多不存在的错误,显示红色波浪线,但能顺利编译运行. 3.解决: 对于32位机来说,先查看注册表: [HKEY_CLA ...

  4. getchar()函数举例

    #include<stdio.h>void main(){ char ch; ch=getchar(); printf("%c",ch);}

  5. MYSQL 常见引擎

    Mysql常见的引擎   常用的引擎是:Innodb和Myiasm这两种引擎: innodb: 提供了对事务的ACID操作,还提供了行级锁和外键约束,,他的优势就是处理大量数据,在msql启动的时候, ...

  6. IDEA设置提示生成序列化ID

    背景: 实现Serializable接口的类,没有提示生成序列化ID 解决问题: 1.FIle->Settings->Editor->inspections 2.点击java-> ...

  7. HDP 企业级大数据平台

    一 前言 阅读本文前需要掌握的知识: Linux基本原理和命令 Hadoop生态系统(包括HDFS,Spark的原理和安装命令) 由于Hadoop生态系统组件众多,导致大数据平台多节点的部署,监控极其 ...

  8. YAML_16 debug检测

    ansible]# ansible-playbook --syntax-check http.yml  //检测语法 playbook: http.yml ansible]# ansible-play ...

  9. 使用状态文件+vigil 监控系统状态

    vigil 是一个不错的系统可用性报告系统,具有还不错的ui 界面,同时也有通知配置,以下是一个简单的 demo 使用状态文件,以及http body 匹配的模式进行web 应用状态的监控,只是简单的 ...

  10. 2017.10.7 国庆清北 D7T2 第k大区间

    题目描述 定义一个长度为奇数的区间的值为其所包含的的元素的中位数. 现给出n个数,求将所有长度为奇数的区间的值排序后,第K大的值为多少. 输入输出格式 输入格式: 输入文件名为kth.in. 第一行两 ...