Dart中常⽤的数组操作⽅法总结这⾥总结了⼀些在 Dart 中常⽤的数组操作⽅法,以便查阅。
⾸先,我们准备两组数据,以⽅便后⾯使⽤:
苹果7截图List<Map> students = [
{ 'name': 'tom', 'age': 16 },
{ 'name': 'jack', 'age': 18 },
{ 'name': 'lucy', 'age': 20 }
];
本⽂中⽤到的students及numbers均指的是这⾥已经定义好的,后⾯不再重复。
forEach()
可以遍历⼀个数组或者是⼀个map
students.forEach((student) => print(student));
// {name: tom, age: 16}
// {name: jack, age: 18}
// {name: lucy, age: 20}
Map tom = { 'name': 'tom', 'age': 16 };
tom.forEach((key, value) => print(key + ' - ' + String()));
// name - tom
Map()
可以⽤来操作已知数组⾥的每⼀项,然后返回⼀个新数组
var messages = students.map((student) => 'Hello ' + student['name']).toList();
print(messages);
contains()
⽤于判断数组是否包含某个元素
ains(5));
sort()
⽤于排序,接收⼀个函数当做参数
numbers.sort((num1, num2) => num1 - num2);
print(numbers);
reduce(), fold()
reduce()将数组中的每⼀个值与前⾯返回的值相加,最后返回相加的总和
fold()⽤法跟reduce()基本⼀样,只不过是可以提供⼀个初始值
var sum = duce((curr, next) => curr + next);
print(sum);
// 26
var sum2 = numbers.fold(10, (curr, next) => curr + next);
print(sum2);
// 36
娃娃兵
every()
手抄报五年级
⽤于判断数组中的每⼀项是否均达到了某个条件
var isAgeOver20 = students.every((student) => student["age"] > 20);
print(isAgeOver20);
// fal
var isAgeOver15 = students.every((student) => student["age"] > 15);
print(isAgeOver15);
where(), firstWhere(), singleWhere()
where()返回数组中满⾜给定条件的元素集合
firstWhere()返回数组中满⾜给定条件的第⼀个元素
singleWhere()返回数组中满⾜给定条件的唯⼀⼀个元素,若有多个元素满⾜条件会抛出异常var ageOver16 = students.where((student) => student["age"] > 16);
展开近义词
List());
// [{name: jack, age: 18}, {name: lucy, age: 20}]
var ageFirstOver16 = students.firstWhere((student) => student["age"] > 16, orEl: () => null);
print(ageFirstOver16);
// {name: jack, age: 18}
var ageUnder20 = students.singleWhere((student) => student["age"] < 16, orEl: () => null);
print(ageUnder20);
take(), skip()
学富五车是什么意思
take(n)从数组⾥取 n 个元素
skip(n)跳过数组中的 n 个元素
List arr = [1, 3, 5, 2, 7, 9];
print(arr.take(3).toList());
// [1, 3, 5]
print(arr.skip(4).toList());
// [7, 9]
print(arr.take(3).skip(2).take(1).toList());
List.from()
克隆⼀个数组
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 = pand((item) => item).toList();
print(flattened);
// [2, 5, 7, 11, 12]
var arr2 = [2, 5, 8];
var computed = pand((item) => [item * 8]).toList();
print(computed);
// [16, 40, 64]
周边一日游
/
/ 当对每⼀项进⾏计算时类似于 map()
养老金能取出来吗
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);
// [1, 3, 5, 9, 2, 1, 10]
arr1.addAll([15, 21]);
print(arr1);
4⼈点赞
作者:三也视界
链接:/p/1c7d828b1153
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,⾮商业转载请注明出处。