Flutter数组操作插件array的使用
Flutter数组操作插件array的使用
介绍
array
插件为 Flutter 提供了丰富的数组操作方法(List extension function)。
添加依赖
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
array: ^0.0.1
然后运行 flutter pub get
来获取该插件。
List.flat
flat
方法可以将多维数组扁平化。默认情况下,它只展开一层,但可以通过参数指定展开层数。
示例代码
import 'package:array/array.dart';
// 数组扁平化
List list = [1, [2, [3, {'name': [123]}]]];
print(list.flat(1)); // [1, 2, [3, {'name': [123]}]]
print(list.flat()); // 默认是展开1层, [1, 2, [3, {'name': [123]}]]
// 如果你不知道数组的深度,你可以传入 double.infinity:
print(list.flat(double.infinity)); // [1, 2, 3, {'name': [123]}]
List.flatMap
flatMap
方法类似于 flat
,但它只会展开一层,并且接收一个函数来映射出对应的值。
示例代码
import 'package:array/array.dart';
// 数组扁平化
// 它和 flat 不一样的地方在于,它只会展开一层,而且接收一个方法,用于映射出对应的值
List list = [{'name': 123, 'age': 0}, {'name': 124, 'age': 1}];
List res = list.flatMap((e) {
print(e);
return e['name'];
});
print(res); // [123, 124]
List.filter
filter
方法用于过滤数组中的元素,类似于 JavaScript 的 filter
方法。
示例代码
import 'package:array/array.dart';
// 数组过滤,和 js 一样
List list = [{'name': 123, 'age': 0}, {'name': 124, 'age': 1}];
List res = list.filter((item, index, list) {
return item['name'];
});
print(res); // [{'name': 123, 'age': 0}]
List.reducex
reducex
方法用于将数组中的所有元素归约到一个单一的返回值。
示例代码
import 'package:array/array.dart';
List list = [{'name': 123, 'age': 0}, {'name': 124, 'age': 1}];
var res = list.reducex((returnValue, currentValue, index, sourceList) {
returnValue.add({'currentKey': currentValue['name']});
return returnValue;
}, []);
print(res); // [{'currentKey': 123}, {'currentKey': 124}]
operator " - "
-
操作符用于从一个列表中减去另一个列表中的元素。
示例代码
import 'package:array/array.dart';
List list1 = ['foo', 'bar', 'baz', 'qux'];
List list2 = ['foo', 'qux'];
print(list1 - list2); // ['bar', 'baz']
operator " + "
+
操作符用于将两个列表合并成一个新的列表。
示例代码
import 'package:array/array.dart';
List list = [0];
List list1 = [{'name': 444, 'age': 0}, {'name': 124, 'age': 1}];
print(list + list1); // [0, {'name': 444, 'age': 0}, {'name': 124, 'age': 1}]
operator " * "
*
操作符用于将列表中的每个元素乘以一个给定的倍数。
示例代码
import 'package:array/array.dart';
List list = [1, null, 2, '12.3'];
print(list * 3); // [3.0, 0.0, 6.0, 36.900000000000006]
更多关于Flutter数组操作插件array的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复