Mở đầu
Bài viết này mình nhắm tới những người mới bắt đầu với Javascript hoặc những người mới bắt đầu làm việc với Javascript . Nhằm giúp refactor lại code nếu bạn gặp 1 số trường hợp dưới đây. Và thông qua đó giúp các bạn hiêu hơn về higher-order functions như map, reduce, and filter …..
Tại sao lại sử dụng map, filter, reduce ….
- Nhìn code sẽ dễ đọc hơn rất nhiều
- Dễ hiểu hơn
- Dễ dàng debug
- Tránh thay đổi mảng ban đầu, do đó, giảm thiểu những rủi ro có thể xảy ra .
- Không cần quản lí vòng lặp
- Hãy nhớ rằng nó luôn được trả về trong callback
1, Lặp qua tất cả các phần tử và nhận về 1 mảng đã sửa đổi
Đôi khi chúng ta có một mảng các object muốn sửa đổi / thêm các thuộc tính của từng đối tượng , cụ thể giả sử chúng ta có thể có một mảng các string mà ta sẽ biến tất cả chúng thành chữ thường . Trên thực tế có thể có vô số tình huống ở đó Map sẽ giúp chúng ta xử lý 1 cách dễ dàng .
Using for
1 | var names = ["Jack", "Jecci", "Ram", "Tom"]; |
Using map
1 | var names = ["Jack", "Jecci", "Ram", "Tom"]; |
Chú ý: Nếu bạn sử dụng map .Thì bạn sẽ không dùng được
break
,continue
,return
trong khi lặp . nếu muốn sử dụng chúng hãy dùngevery
hoặcsome
2, Lặp qua tất cả các phần tử và thực hiện một hành động
Using for
1 | function print(name) { |
Using forEach
1 | var names = ["Jack", "Jecci", "Ram", "Tom"]; |
3, Lọc các phần tử của mảng
Tôi tin rằng trong quá trình bạn code bạn đã gặp tình huống phải lọc 1 số item ra khỏi mảng ban đầu .
Ví dụ: bài toán lọc các phần tử chăn trong mảng dưới đây
để làm được điều đó chúng ta phải xử lí khá rắc rối , nhưng với filter thì bạn có thể sử dụng nó 1 cách dễ dàng.
Using for
1 | function isOdd(n) { |
Using filter
1 | var numbers = [1,2,3,4,5, 6, 7] |
Bạn thấy đấy ngắn hơn raart nhiều phải không .
4, Tính toán các giá trị thành một giá trị duy nhất
Ví dụ, với một dãy số bạn có thể dễ dàng tính được tổng của tất cả các giá trị.
Using for
1 | var numbers = [1,2,3,4,5] |
Using reduce
1 | var numbers = [1,2,3,4,5,6,7]; |
5, Kiểm tra xem một mảng có chứa giá trị nào đó không
Đôi khi bạn muốn kiểm tra 1 phần tử nào đó có tồn tại trong 1 array cho trước hay không. hãy nghĩ đến some
Using for
1 | var names = ["ram", "raj", "rahul"]; |
Using some
1 | var names = ["ram", "raj", "rahul"]; |
6, kiểm tra xem mọi phần tử trong một mảng có đáp ứng điều kiện không
Using for
1 | var num = [1,2,3,4,5, 0]; |
Using some
1 | var num = [1,2,3,4,5, 0]; |
Kết luận
Hy vọng qua bài viết này các bạn có thể tham khảo để refactor ứng dụng của mình 1 cách thông mình hơn. giúp cho code dễ đọc dễ hiểu và dễ maintain, debug hơn. :heart_eyes::heart_eyes::heart_eyes::heart_eyes::heart_eyes:
Thanks for reading. I hope you upvote this.