, October 26, 2021

0 kết quả được tìm thấy

Top 10 Dart Array method trong Flutter mà bạn nên biết 🎯

  • Đăng bởi  Kieu Hoa
  •  Jul 30, 2021

  •   5 min reads
Top 10 Dart Array method trong Flutter mà bạn nên biết 🎯

Là một phần trong team phát triển các ứng dụng Flutter cho khách hàng, như bạn biết đấy, tôi phải làm việc với ngôn ngữ Dart rất là nhiều. Các ứng dụng ngày nay thường hiển thị rất nhiều thông tin trên màn hình, đặc biệt là các danh sách sản phẩm dài scroll miết không hết ở các ứng dụng thương mại điện tử, hoặc dễ thấy nhất đó là danh sách các bài viết của các ứng dụng mạng xã hội mà chúng ta hay dùng hằng ngày.

Do đó, khi làm việc với nhiều kiểu dữ liệu List hoặc Array, tôi phát hiện rất nhiều method có sẵn trong ngôn ngữ Dart rất hữu ích và trong bài viết này tôi sẽ chia sẻ cho bạn những method mà tôi rất hay dùng. Tôi đã chọn ra 10 trong số những cái phổ biến nhất mà bạn biết cho ứng dụng tiếp theo của mình. Tôi cũng đã chuẩn bị các đoạn code ví dụ để bạn có thể tự chơi với chúng nhé! Giờ chúng ta sẽ bắt đầu thôi!

Nếu bạn muốn tìm hiểu thêm về ngôn ngữ Dart, bạn có thể xem seri tự học ngôn ngữ Dart ở link dưới nhé!

Seri tự học ngôn ngữ DART cho người mới bắt đầu
Nếu bạn đang có ý định học Flutter nhưng lại gặp rào cản với ngôn ngữ Dart. Thì trong series này, từng bước một chúng ta sẽ cùng nhau chinh phục nó.

1. forEach()

Function này giúp chúng ta lấy ra được từng phần tử ở trong danh sách từ vị trí đầu tiên đến vị trí cuối cùng. Ở ví dụ bên dưới, chúng ta print ra lần lượt các phần tử đó trên terminal.

var fruits = [‘banana’, ‘pineapple’, ‘watermelon’];
fruits.forEach((fruit) => print(fruit)); // => banana pineapple watermelon

2. map()

Function này giúp chúng ta tạo một danh sách mới sau khi chuyển đổi từng element trong một danh sách cho trước. Ở ví dụ bên dưới, chúng ta có được một danh sách mới và gán giá trị đó sang cho biến mappedFruits.

var mappedFruits = fruits.map((fruit) => ‘I love $fruit’).toList();
print(mappedFruits); // => ['I love banana', ‘I love pineapple’, ‘I love watermelon’]

3. contains()

Function này giúp chúng ta kiểm tra để xác nhận rằng element đó có nằm trong danh sách hay không. Nếu có thì chương trình sẽ trả về true và ngược lại trả về false.

var numbers = [1, 3, 2, 5, 4];
print(numbers.contains(2)); // => true
print(numbers.contains(6)); // => false

4. sort()

Sắp xếp các element của danh sách dựa trên yêu cầu được cung cấp. Dưới đây là ví dụ sắp xếp 1 danh sách kiểu int giá trị từ nhỏ đến lớn.

numbers.sort((num1, num2) => num1 - num2); // => [1, 2, 3, 4, 5]

Bonus: Vậy trong trường hợp ngược lại thì sao, easy chỉ cần đảo chỗ lại thôi :v

numbers.sort((num1, num2) => num2 - num1);

5. reduce(), fold()

Nén các element trong danh sách thành một giá trị duy nhất, kết hợp với hàm được đưa vào.

var sum = numbers.reduce((curr, next) => curr + next);
print(sum); // => 15
const initialValue = 10;
var sum2 = numbers.fold(initialValue, (curr, next) => curr + next);
print(sum2); // => 25

6. every()

Xác nhận rằng mọi element đều thỏa mãn test mà chúng ta đưa vào. Do đó, nếu bất kỳ phần tử nào trong danh sách không thoả mãn điều kiện, chương trình sẽ trả về giá trị false.

List<Map<String, dynamic>> users = [
  { “name”: ‘John’, “age”: 18 },
  { “name”: ‘Jane’, “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

7. where(), firstWhere(), singleWhere()

Trả về collection các element thỏa mãn điều kiện chúng ta đưa vào.

// See #6 for users list
var over21s = users.where((user) => user[“age”] > 21);
print(over21s.length); // => 1

var nameJ = users.firstWhere((user) => user[“name”].startsWith(‘J’), orElse: () => null);
print(nameJ); // => {name: John, age: 18}

var under18s = users.singleWhere((user) => user[“age”] < 18, orElse: () => null);
print(under18s); // => null

firstWhere() trả về kết quả phù hợp đầu tiên trong danh sách, trong khi singleWhere() trả về kết quả phù hợp đầu tiên miễn là có đúng một kết quả phù hợp.

8. take(), skip()

Trả về một collection mới khi chứa hoặc bỏ qua các element trong danh sách.

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]

9. List.from()

Tạo danh sách mới từ collection đã cho.

var clonedFiboNumbers = List.from(fiboNumbers);
print(‘Cloned list: $clonedFiboNumbers’);

10. expand()

Mở rộng từng element thành không hoặc nhiều element.

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]

Conclusion

Các đoạn code ví dụ cho bài viết này có sẵn trên DartPad. Follow 200Lab 😍 để biết thêm nhiều nội dung hấp dẫn về Dart. Cảm ơn vì đã đọc.

Bài viết này được dịch từ đây.

Bài viết liên quan

Tìm hiểu regex trong ngôn ngữ Dart qua ví dụ cơ bản

Trích xuất text bất kỳ từ một string cho trước bằng cách sử dụng regex trong Dart...

Tìm hiểu regex trong ngôn ngữ Dart qua ví dụ cơ bản
Tìm hiểu Iterables và Iterators trong ngôn ngữ Dart

Tôi sẽ giải thích các iterable là gì, khác với iterator như nào và chỉ cho bạn ví dụ thực tế về cách tạo ra iterable của riêng mình....

Tìm hiểu Iterables và Iterators trong ngôn ngữ Dart
Tìm hiểu lập trình bất đồng bộ trong Dart & Flutter

Chúng ta sẽ cùng nhau tìm hiểu lập trình bất đồng bộ trong Dart & Flutter và khám phá sâu hơn cách các asynchronous code patterns....

Tìm hiểu lập trình bất đồng bộ trong Dart & Flutter
Tìm hiểu Keys trong Flutter

Chúng ta không những tìm hiểu công dụng của từng loại Key, mà còn biết khi nào, ở đâu và loại nào thích hợp để giải quyết các vấn đề....

Tìm hiểu Keys trong Flutter
Làm việc với JSON & Serialization trong Flutter

JSON là một định dạng để chuyển dữ liệu qua web và hơn nữa. Mọi lập trình viên sẽ gặp vấn đề: làm cách nào để parse JSON thành một object?...

Làm việc với JSON & Serialization trong Flutter
You've successfully subscribed to 200Lab Blog
Great! Next, complete checkout for full access to 200Lab Blog
Xin chào mừng bạn đã quay trở lại
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.