[Dart] Manipulate Lists/Arrays in Dart
We will learn how to work with Lists using a variety of methods made available in the dart:core library. We will explore the top methods for working with List type collections.
Learn more about Lists at https://api.dartlang.org/stable/2.2.0/dart-core/List-class.html
Array to list:
because .map return iterable.
var fruits = ['banana', 'pineapple', 'orange', 'watermelon', 'apple']; var fiboNumbers = [1, 2, 3, 5, 8, 13, 21]; List<Map<String, dynamic>> users = [ { 'name': 'John', 'age': 18 }, { 'name': 'Jane', 'age': 21 }, { 'name': 'Mary', 'age': 23 }, ]; // array to list var mappedFruits = fruits.map((fruit) => 'I love $fruit').toList(); print(mappedFruits);
reduce vs fold:
reduce: doesn't provide the init value, but 'fold' does:
const initialValue = 10; var sum2 = fiboNumbers.fold(initialValue, (curr, next) => curr + next); print( sum2 ); var sum = fiboNumbers.reduce((curr, next) => curr + next); print( sum );
filtering:
var over21s = users.where((user) => user['age'] > 21); print( over21s.length ); var nameJ = users.firstWhere((user) => user['name'].startsWith('J'), orElse: () => null); print( nameJ ); var under18 = users.singleWhere((user) => user['age'] < 18, orElse: () => {'error': 'Not Found'}); print( under18 );
take & skip:
print( fiboNumbers.take(3).toList() ); print( fiboNumbers.skip(5).toList() ); print( fiboNumbers.take(3).skip(2).take(1).toList() );
expend: the same as flatMap in JS
var flattened = [[1, 2], [3, 4]].expand((pair) => pair).toList(); print( flattened ); var duplicated = fiboNumbers.expand((i) => [i, i]).toList(); print( duplicated );
分类:
Dart
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-09-04 [React] Use Prop Collections with Render Props
2017-09-04 [Angular & Web] Retrieve user data from Session
2016-09-04 [AngualrJS] ng-strict-di
2016-09-04 [Ramda] Simple log function for debugging Compose function / Using R.tap for logging
2015-09-04 [Flux] 2. Overview and Dispatchers
2015-09-04 [Flux] 1. Development Environment Setup
2015-09-04 [CSS] Animating SVG