首先,我们准备两组数据,以方便后面使用:
List students =[{'name':'tom','age':16},{'name':'jack','age':18},{'name':'lucy','age':20}];
List numbers =[2,8,5,1,7,3];
本文中用到的 students 及 numbers 均指的是这里已经定义好的,后面不再重复。
forEach() 可以遍历一个数组或者是一个map
students.forEach((student)=>print(student));
Map tom ={'name':'tom','age':16};
tom.forEach((key, value)=>print(key +' - '+ value.toString()));
Map() 可以用来操作已知数组里的每一项,然后返回一个新数组
var messages = students.map((student)=>'Hello '+ student['name']).toList();print(messages);
contains() 用于判断数组是否包含某个元素
print(students.contains(5));
reduce(), fold()
- reduce() 将数组中的每一个值与前面返回的值相加,最后返回相加的总和
- fold() 用法跟 reduce() 基本一样,只不过是可以提供一个初始值
var sum = numbers.reduce((curr, next)=> curr + next);print(sum);
var sum2 = numbers.fold(10,(curr, next)=> curr + next);print(sum2);
every() 用于判断数组中的每一项是否均达到了某个条件
var isAgeOver20 = students.every((student)=> student["age"]>20);print(isAgeOver20);
var isAgeOver15 = students.every((student)=> student["age"]>15);print(isAgeOver15);
where(), firstWhere(), singleWhere()
- where() 返回数组中满足给定条件的元素集合
- firstWhere() 返回数组中满足给定条件的第一个元素
- singleWhere() 返回数组中满足给定条件的唯一一个元素,若有多个元素满足条件会抛出异常
var ageOver16 = students.where((student)=> student["age"]>16);print(ageOver16.toList());
var ageFirstOver16 = students.firstWhere((student)=> student["age"]>16, orElse:()=> null);print(ageFirstOver16);
var ageUnder20 = students.singleWhere((student)=> student["age"] null);print(ageUnder20);
take(), skip()
- take(n) 从数组里取 n 个元素
- skip(n) 跳过数组中的 n 个元素
List arr =[1,3,5,2,7,9];print(arr.take(3).toList());print(arr.skip(4).toList());print(arr.take(3).skip(2).take(1).toList());
() 克隆一个数组
List arr =[1,3,5,2,7,9];
var clonedArr = List.from(arr);print(clonedArr);
expand()
var arr1 =[[2,5],[7],[11,12]];
var flattened = arr1.expand((item)=> item).toList();print(flattened);
var arr2 =[2,5,8];
var computed = arr2.expand((item)=>[item *8]).toList();print(computed);
var computed2 = arr2.map((item)=> item *8).toList();print(computed2);
add(), addAll()
- add() 向数组中添加一个元素
- addAll() 向数组中添加另一个数组的所有元素
>var arr1 =[1,3,5,9,2,1];
arr1.add(10);print(arr1);
arr1.addAll([15,21]);print(arr1);
作者:三也视界