Phần1 - Javascript objects arrays: Arrays và Object cũng giống như Sách và Báo

Tôi đoán không nhầm khi chúng ta bắt đầu học data trong javascript cũng bắt đầu từ object và array. Nhưng liệu trong số những người mới bắt đầu có biết làm thế nào để tối ưu data trong javascript? Và trường hợp nào nên sử dụng object trong javascript?, khi nào nên sử dụng array javascript? Chúng ta có thể tham khảo câu trả lời trong bài viết này... 

Tham gia cùng chúng tôi:

Facebook: Cộng đồng lập trình javascript

Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam

Đầu tiên như tiêu đề bài viết có thể bạn chưa biết về Arrays và Object nhưng với Sách và Báo thì bạn không thể không phân biệt được. Nếu như chúng ta có thể phân biệt được Sách và Báo thì Array và Object cũng được hiểu nôm na là như? Vì sao chúng ta lại so sánh như vậy, vì nó sẽ giúp bạn nhơ lâu hơn khi sử dụng tới object và array. Với vòng lặp for.. là sự khởi đầu cho việc học javascript với array, nên nhiều bạn sẽ hiểu array nhiều hơn, nhưng vào một ngày nào đó, cấu trúc dữ liệu của bạn bắt đầu phình lên và nhiều kiểu dữ liệu khác nhau khi đó bạn sẽ gặp khó khăn nhiều khi xử lý chúng nếu bạn không biết cách tổ chức data.

 Việc chọn lựa sử dụng object hay array dễ dàng khi bạn xác định được cấu trúc dữ liệu và có lẽ Arrays phù hợp chặt chẽ với cách mà sách lưu trữ thông tin. Và Objects phù hợp với cách mà báo lưu trữ thông tin.

# Arrays: Với Arrays thứ tự của data là điều quan trọng nhất

Mình đi vào một cuốn sách lấy ví dụ cuốn: "Hãy Chăm Sóc Mẹ" của nhà văn "Shin Kyung Sook". Mà với trái tim của người developer cũng tan chảy(gọi là khóc gần chết ... huhu ) xem ví dụ của các chương:

var book = ['Không Ai Biết', 'Xin lỗi con', 'Tôi đã về đây', 'Và người phụ nữ khác']

Bạn muốn sử dụng Arrays khi thứ tự là yếu tố quan trọng nhất để tổ chức thông tin. Thứ tự của các chương cho bạn biết nên đọc cái nào tiếp theo đúng không? Khi bạn lấy thông tin của một array thì bạn bắt đầu đi từ con số 0 hay gọi là index 0. Có ngghĩa là

let chap1 = books[0]; //Không Ai Biết

Nếu bạn muốn tìm tên của chương "Tôi đã về đây" thì bạn có thể gọi

let chap3 = books[2]; //Tôi đã về đây

Và cuối cùng: Bạn chọn phần nào để đọc tiếp theo dựa trên thứ tự trong cuốn sách, không dựa trên tiêu đề của chương. Objects: Với object thì Data Label là điều quan trọng nhất.

Chúng ta cùng xem ví dụ sau:

var newspaper = {
  sports: 'Bàn tay của Chúa',
  business: 'Bàn Tay Vàng',
  movies: 'Đội Cứu Hộ Cún Con'
}

#Objects là tốt nhất khi bạn muốn tổ chức dựa trên lable data (hay gọi là key).

Khi bạn đọc một tờ báo, bạn không cần phải đọc the tứ tự, or từ trước ra sau.. Bạn dựa vào tên của bài bào để đọc. Bất kể phần đó nằm ở đâu trong tờ báo, bạn có thể lật tới nó ngay lập tức đương nhiên là bạn thích nó đã =]]. Điều này không giống như một cuốn sách, trong đó thứ tự của các chương / phần quan trọng. 

Object thì thường tổ chức qua key/values dạng như thế này

let sports = newspaper.sports;//Bàn tay của Chúa'

or cách khác

let sports = newspaper['sports'];//Bàn tay của Chúa'

Từ lâu các devloper đa số dử dụng string để làm việc với array và objetc nhưng đến bây giờ chúng ta có thể mix chúng lại với nhau vì bây giờ các kiểu data phức tạp hơn như

  1. Arrays within objects 
  2. Objects within arrays. 
  3. Arrays within arrays
  4. Objects within objects

Đây là nơi nó bắt đầu trở nên phức tạp. Tuy nhiên, hầu như bạn sẽ luôn cần sự kết hợp của cả hai để lưu trữ dữ liệu của mình theo cách có thể mở rộng hơn. Giờ với ví dụ trên ta mở rộng hơn về thêm số trang vào object và array. Chúng ta có thể sử array book khi thêm số trang vào bằng cách

var book = [
  {name: 'Không Ai Biết', pageCount: 14},
  {name: 'Xin lỗi con', pageCount: 18},
  {name: 'Tôi đã về đây', pageCount: 13},
  {name: 'Và người phụ nữ khác', pageCount: 17},
]

và khi đó chúng ta có thể lấy số trang

let page1 =  book[0].pageCount;//14

Ở bài sau chúng ta sẽ đi những ví dụ về cách tối ưu của object và array, ở hoàn cảnh nào chúng ta sẽ sử dụng chúng?

# Câu hỏi dành cho những bạn đọc tới đây?

1 - Bạn có một forum với nhiều topic, giờ điều bạn cần là lữu trữ nhưng comment của user ở mỗi topic? Bạn nên sử dugnj cấu trúc nào? và tại sao? 

2 - Khi user login vào web của bạn, và bạn cần update những thông tin thêm như fullname, email, address, thì bạn nên store như thế nào? Tại sao? 

# Kết Luận

Tham gia cùng chúng tôi:

Facebook: Cộng đồng lập trình javascript

Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam

Thật ra việc định nghĩa object và array có nhiều bạn hiểu rất rõ những khó diễn đạt được, nên kho đọc xong bài viết này thì bạn có thể hiểu tường mình và rõ ràng hơn nhiều. Nếu bài viết có ỹ nghĩa thì bạn nên chia sẻ cho nhiều bạn khác chưa đọc được bài viết này. 

Happy codding! 

Tham khảo tại : https://medium.freecodecamp.org/javascript-arrays-and-objects-are-just-like-books-and-newspapers