Javascript object array - when to Use Array and use object in javascript

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ừ javascript array object . 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

Sau khi các bạn đã đọc xong hai bài viết về những khái nhiệm "Shallow copy vs deep copy khác nhau thế nào trong javascript""những phương pháp deep copy object, array, function in javascript" thì trong bài viết này chúng ta sẽ đi tìm hiểu về javascript array object đó là khi nào sử dụng object và khi nào sử dụng array. Đó là một vấn đề có thể khiến các bạn mới lập trình javascript gặp khó khăn. Nếu bạn không có thời gian thì hãy nhớ rằng: Javascript object array. Những trường hợp sử dụng array đó là khi bạn cần phụ thuộc vào thứ tự của các phần tử trong một collection, và khi thứ tự không quan trọng, hãy sử dụng các Object. Thứ tự không được đảm bảo trong những objects, nhưng chúng cung cấp những thứ mà array không thể sánh kịp.

javascript object array

Javascript array object

Trước tiên tôi sẽ lấy ví dụ về SáchBáo của một bài viết trên medium.com, đó là một bài viết rất hay các bạn có thể xem link ở dưới bài viết. Một ví dụ rất quen thuộc để mô tả cho bài viết này, hy vọng các bạn hiểu hơn về ví dụ này.

Đầu tiên như chúng ta đã nói ở trên có thể bạn chưa biết về javascript array object nhưng với SáchBáo thì bạn không thể không phân biệt được, đúng chưa?. Nếu như chúng ta có thể phân biệt được Sách và Báo thì javascript array of objects cũng được hiểu nôm na là như vậy. Ồ nếu đọc tới đây thì có bạn nào thắc mắc như tôi không? Ủa nó liên quan gì đâu, vậy là thế éo nào? Đúng như vậy, xem tiếp nào.

Array object javascript

Vì sao chúng ta lại so sánh như vậy, trong bài viết gốc nói rằng vì nó sẽ giúp bạn nhớ lâu hơn khi sử dụng tới object và array trong javascript. Đúng như vậy, tôi cũng nghĩ như vậy. Bạn có nhớ rằng khi chúng ta mới học lập trình với vòng lặp for (loop in array javascript) 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.

Tips: Trời sinh ra for loop sao còn sinh array.forEach trong javascript?

Khi nào sử dụng array và object trong javascript

When to Use Array in javascript

const players = ['Quang Hải', 'Hùng Dũng', 'Ronaldo cr7', 'Messi'];

Với cá nhân tôi thì sử dụng array bất cứ khi nào mà muốn tạo và lưu trữ danh sách nhiều mục trong một biến. arrays đặc biệt hữu ích khi tạo một collection theo thứ tự(index) để có thể truy cập nhanh nếu tôi đã biết được thứ tự của nó. Giống như các thuộc tính đối tượng có thể lưu trữ các giá trị của bất kỳ kiểu dữ liệu nào (cũng như một arrays hoặc một đối tượng khác), do đó, các arrays cũng có thể bao gồm các String, Number, booleans, objects, function hoặc thậm chí các arrays khác.

# 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ó đó có nghĩ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.

Notes: Loop object và array khác nhau như thế nào?

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'
}

When to Use Objects in javascript

// Basic object syntax
var object = {
  key: 'value'
};

// Example 'person' object
var person = {
  name: 'Zac',
  age: 33,
  likesCoding: true
};

Các Objects được sử dụng để đại diện cho một cái gì đó liên quan đến việc xử lý công việc trong code của chúng ta. Cụ thể đó có thể là thông tin về một người, một chiếc xe, một tòa nhà, một cuốn sách, một nhân vật trong trò chơi - về cơ bản là bất cứ thứ gì được tạo thành hoặc có thể được xác định bởi một tập hợp các đặc điểm. Trong các objects, các đặc tính này được gọi là các properties bao gồm key-value.

#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. 

Và khi bạn sử dụng object thì những khái niệm về object như object.freeze javascript , object.seal() cũng sẽ được phát huy tác dụng, xem thêm: object.freeze javascript là gì

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?

Tips: Object into query string parameters in JavaScript

# 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

Trên đây là những gì mà tôi đã suy nghĩ và áp dụng trong những hoàn cảnh trong lập trình của tôi. Tôi biết sẽ có nhiều ý kiến khác nhau xung quanh việc dùng object hay arrays bây giờ. Nhưng điều duy nhất là đúng khi bạn là người tổ chức dữ liệu cho một dự án, hay những người làm database thì việc phân biệt array object javascript thì quá đơn giản. Nếu bạn có bất kỳ ý kiến nào khác, xin vui lòng comments dưới bài viết này. Chúng ta sẽ bàn luận đến nó một cách sâu sắc hơn. 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 : medium