Cách Chuyển Object Sang Array Trong JavaScript Đơn Giản Và Hiệu Quả

Hướng dẫn cách chuyển object sang array trong JavaScript bằng Object.keys, Object.values và Object.entries, dễ hiểu và áp dụng nhanh.

Trong quá trình lập trình với JavaScript, đôi khi bạn sẽ gặp tình huống cần chuyển đổi một Object sang Array. Điều này đặc biệt quan trọng khi bạn muốn tận dụng các phương thức mạnh mẽ mà Array cung cấp như map, filter, reduce, v.v.

Vậy làm sao để chuyển một Object sang Array một cách hiệu quả và tối ưu? Trong bài viết này, BaoTrongIT sẽ giới thiệu đến bạn các cách phổ biến và chuyên nghiệp để thực hiện điều đó.

📌 Vì sao cần chuyển Object sang Array?

  • Dễ dàng xử lý dữ liệu: Array hỗ trợ nhiều hàm xử lý dữ liệu giúp bạn viết code gọn hơn.
  • Hiển thị dữ liệu dễ dàng hơn: Khi bạn cần render dữ liệu ra bảng, danh sách,...
  • Tương thích với nhiều thư viện: Nhiều thư viện chỉ nhận array làm input.

🔍 Ví dụ thực tế cần chuyển Object sang Array

Giả sử bạn có object sau từ một API:

const products = {
  p01: { name: "Laptop", price: 1500 },
  p02: { name: "Mouse", price: 25 },
  p03: { name: "Keyboard", price: 70 }
};

Giờ bạn muốn hiển thị danh sách sản phẩm và tính tổng giá? Lúc này bạn cần chuyển Object này sang Array.

1. Object.values() – Lấy mảng các value

const productArray = Object.values(products);
console.log(productArray);
/* Output:
[
  { name: "Laptop", price: 1500 },
  { name: "Mouse", price: 25 },
  { name: "Keyboard", price: 70 }
]
*/

Giờ bạn có thể dễ dàng tính tổng giá:

const total = productArray.reduce((sum, item) => sum + item.price, 0);
console.log(total); // 1595

2. Object.keys() – Lấy mảng các key

const ids = Object.keys(products);
console.log(ids); // ["p01", "p02", "p03"]

Có thể dùng để tìm sản phẩm theo ID dễ dàng.

3. Object.entries() – Lấy mảng [key, value]

const entries = Object.entries(products);
console.log(entries);
/* Output:
[
  ["p01", { name: "Laptop", price: 1500 }],
  ["p02", { name: "Mouse", price: 25 }],
  ["p03", { name: "Keyboard", price: 70 }]
]
*/

Giờ bạn có thể truy xuất cả key lẫn giá trị trong một lần lặp:

entries.forEach(([id, product]) => {
  console.log(`${id}: ${product.name} - $${product.price}`);
});

⚙️ Nâng cao: Chuyển object sang array có thêm ID

Nếu bạn muốn mỗi object con có thêm trường id (lấy từ key), bạn có thể làm như sau:

const arrayWithId = Object.entries(products).map(([id, value]) => ({
  id,
  ...value
}));

console.log(arrayWithId);
/* Output:
[
  { id: "p01", name: "Laptop", price: 1500 },
  { id: "p02", name: "Mouse", price: 25 },
  { id: "p03", name: "Keyboard", price: 70 }
]
*/

Cách này cực kỳ hữu ích nếu bạn cần render danh sách có ID duy nhất.

📌 Tổng kết

Việc convert Object to Array trong JavaScript là một thao tác đơn giản nhưng cực kỳ quan trọng trong thực tế. Tùy theo mục đích sử dụng, bạn có thể dùng Object.keys, Object.values, hoặc Object.entries. Mỗi method đều có ưu điểm riêng và phù hợp với các use-case khác nhau.

Hãy chọn đúng công cụ cho đúng việc – đó là cách để bạn trở thành một lập trình viên JavaScript chuyên nghiệp hơn mỗi ngày!

👉 Theo dõi thêm tại baotrongit.com để đọc nhiều bài viết hữu ích khác nhé!

Xin chào! Mình là BaoTrongIT – một lập trình viên đam mê chia sẻ kiến thức lập trình, đặc biệt là về JavaScript, Node.js, NestJS, và các công nghệ backend/frontend hiện đại. Trên blog này, mình thường xuyên đăng tải các bài viết thủ thuật, kinh nghiệm thực chiến, ví dụ minh họa dễ hiểu, giúp bạn tiếp cận và hiểu sâu các khái niệm tưởng như phức tạp trong lập trình.