[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 );

 

posted @   Zhentiw  阅读(209)  评论(0编辑  收藏  举报
编辑推荐:
· 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
点击右上角即可分享
微信分享提示