Collections Methods trong Dart
1. Giới thiệu
Dart cung cấp nhiều methods mạnh mẽ để xử lý List, Set và Map.
2. map()
Chuyển đổi từng phần tử:
void main() {
var numbers = [1, 2, 3, 4, 5];
var doubled = numbers.map((n) => n * 2).toList();
print(doubled); // [2, 4, 6, 8, 10]
}3. where() - Filter
Lọc phần tử theo điều kiện:
void main() {
var numbers = [1, 2, 3, 4, 5, 6];
var evens = numbers.where((n) => n % 2 == 0).toList();
print(evens); // [2, 4, 6]
}4. reduce()
Gộp các phần tử thành một giá trị:
void main() {
var numbers = [1, 2, 3, 4, 5];
var sum = numbers.reduce((a, b) => a + b);
print(sum); // 15
var product = numbers.reduce((a, b) => a * b);
print(product); // 120
}5. fold()
Giống reduce nhưng có giá trị khởi tạo:
void main() {
var numbers = [1, 2, 3, 4, 5];
var sum = numbers.fold<int>(10, (acc, n) => acc + n);
print(sum); // 25 (10 + 1 + 2 + 3 + 4 + 5)
}6. any() và every()
void main() {
var numbers = [1, 2, 3, 4, 5];
// Có ít nhất 1 phần tử thỏa mãn?
print(numbers.any((n) => n > 3)); // true
// Tất cả phần tử thỏa mãn?
print(numbers.every((n) => n > 0)); // true
}7. firstWhere() và lastWhere()
void main() {
var numbers = [1, 2, 3, 4, 5];
var first = numbers.firstWhere((n) => n > 2);
print(first); // 3
var last = numbers.lastWhere((n) => n < 4);
print(last); // 3
// Với orElse
var notFound = numbers.firstWhere(
(n) => n > 10,
orElse: () => -1
);
print(notFound); // -1
}8. sort()
void main() {
var numbers = [3, 1, 4, 1, 5, 9, 2, 6];
numbers.sort();
print(numbers); // [1, 1, 2, 3, 4, 5, 6, 9]
// Sắp xếp giảm dần
numbers.sort((a, b) => b.compareTo(a));
print(numbers); // [9, 6, 5, 4, 3, 2, 1, 1]
}9. take() và skip()
void main() {
var numbers = [1, 2, 3, 4, 5];
print(numbers.take(3).toList()); // [1, 2, 3]
print(numbers.skip(2).toList()); // [3, 4, 5]
}10. expand()
Làm phẳng nested list:
void main() {
var nested = [[1, 2], [3, 4], [5]];
var flat = nested.expand((x) => x).toList();
print(flat); // [1, 2, 3, 4, 5]
}📝 Tóm tắt
| Method | Mục đích |
|---|---|
map() | Chuyển đổi phần tử |
where() | Lọc phần tử |
reduce() | Gộp thành 1 giá trị |
fold() | Gộp với giá trị khởi tạo |
any() | Kiểm tra có phần tử thỏa mãn |
every() | Kiểm tra tất cả thỏa mãn |
sort() | Sắp xếp |
take()/skip() | Lấy/bỏ qua n phần tử |
Last updated on