Skip to content

Instantly share code, notes, and snippets.

@graphicbeacon
Last active June 28, 2018 16:31
Show Gist options
  • Save graphicbeacon/aec9a0ecd000063f53630799bb24b05c to your computer and use it in GitHub Desktop.
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)
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