, December 04, 2022

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

Flutter Tutorial 2022: Giới thiệu Flutter Travel App

Trong series này, chúng ta sẽ cùng nhau thực hiện ứng dụng Travel App với một bản UI Design vô cùng đẹp mắt, thu hút có sẵn....

Flutter Tutorial 2022: Giới thiệu Flutter Travel App
Tổng hợp các Shortcuts, Extensions & Settings trong VSCode khi lập trình Flutter

Trong bài viết này, mình sẽ liệt kê cho bạn các shortcuts, extensions, setting mà bạn nên sử dụng để lập trình Flutter hàng ngày....

Tổng hợp các Shortcuts, Extensions & Settings trong VSCode khi lập trình Flutter
[Phần 1] Những extension cần thiết khi làm việc với Flutter trên VS Code

VS Code là 1 text editor tuyệt vời được phát triển bởi Mircosoft. Đây là một trong các công cụ được developer trên toàn thế giới yêu thích vì sự tiện lợi, dễ dùng và nó chứa hàng ngàn, thậm chí trăm ngàn các extension phục vụ cho bạn trong quá trình bạn phát triển phần mềm....

[Phần 1] Những extension cần thiết khi làm việc với Flutter trên VS Code
Dart 2.15 có gì mới?

Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu chi tiết những tính năng vừa mới được cập nhật thêm ở phiên bản Dart 2.15. Cùng xem thử để xem có tính năng nào mà bạn đang "mong chờ" từ lâu đối với ngôn ngữ Dart hay không 😄....

Dart 2.15 có gì mới?
Flutter Design Patterns: 17 — Bridge

Tổng quan về Bridge design pattern và việc thực hiện nó trong Dart và Flutter...

Flutter Design Patterns: 17 — Bridge
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.