Last active
June 28, 2018 16:31
-
-
Save graphicbeacon/aec9a0ecd000063f53630799bb24b05c to your computer and use it in GitHub Desktop.
Sample snippet for "Top 10 Array utility methods you should know (Dart) 🎯" article on Medium (Full solution)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void main() { | |
// forEach() | |
var fruits = ['banana', 'pineapple', 'watermelon']; | |
fruits.forEach((fruit) => print(fruit)); // => banana pineapple watermelon | |
print('\n---\n'); | |
// map() | |
var mappedFruits = fruits.map((fruit) => 'I love $fruit').toList(); | |
print(mappedFruits); // => ['I love banana', 'I love pineapple', 'I love watermelon'] | |
print('\n---\n'); | |
// contains() | |
var numbers = [1, 3, 2, 5, 4]; | |
print(numbers.contains(2)); // => true | |
print('\n---\n'); | |
// sort | |
numbers.sort((num1, num2) => num1 - num2); | |
print(numbers); // => [1, 2, 3, 4, 5] | |
print('\n---\n'); | |
// reduce(), fold() | |
var sum = numbers.reduce((current, next) => current + next); | |
print(sum); // => 15 | |
const initialValue = 10; | |
var sum2 = numbers.fold(initialValue, (current, next) => current + next); | |
print(sum2); // => 25 | |
print('\n---\n'); | |
// every() | |
List<Map<String, dynamic>> users = [ | |
{ "name": 'Jane', "age": 18 }, | |
{ "name": 'Jim', "age": 21 }, | |
{ "name": 'Mary', "age": 23 }, | |
]; | |
var is18AndOver = users.every((user) => user["age"] >= 18); | |
print(is18AndOver); // => true | |
var hasNamesWithJ = users.every((user) => user["name"].startsWith('J')); | |
print(hasNamesWithJ); // => false | |
print('\n---\n'); | |
// where(), firstWhere(), singleWhere() | |
var over21s = users.where((user) => user["age"] > 21); | |
print(over21s.length); // => 1 | |
var under18s = users.singleWhere((user) => user["age"] < 18, orElse: () => null); | |
print(under18s); // => null | |
var nameJ = users.firstWhere((user) => user["name"].startsWith('J'), orElse: () => null); | |
print(nameJ); // => {name: Jane, age: 18} | |
print('\n---\n'); | |
// take(), skip() | |
var fiboNumbers = [1, 2, 3, 5, 8, 13, 21]; | |
print(fiboNumbers.take(3).toList()); // => [1, 2, 3] | |
print(fiboNumbers.skip(5).toList()); // => [13, 21] | |
print(fiboNumbers.take(3).skip(2).take(1).toList()); // => [3] | |
print('\n---\n'); | |
// List.from() | |
var clonedFiboNumbers = List.from(fiboNumbers); | |
print(clonedFiboNumbers); // => [1, 2, 3, 5, 8, 13, 21] | |
print('\n---\n'); | |
// expand() | |
var pairs = [[1, 2], [3, 4]]; | |
var flattened = pairs.expand((pair) => pair).toList(); | |
print('Flattened result: $flattened'); // => [1, 2, 3, 4] | |
var input = [1, 2, 3]; | |
var duplicated = input.expand((i) => [i, i]).toList(); | |
print(duplicated); // => [1, 1, 2, 2, 3, 3, 4, 4] | |
print('\n---\n'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment