- vừa được xem lúc

JS case study - Thay đổi cấu trúc của mảng các Object (Convert an Array Object to another array with different object)

0 0 17

Người đăng: Lam Vu Hoang

Theo Viblo Asia

Yêu cầu đưa ra:

Gửi lên Backend mảng có dạng sau, tạm gọi là arrayA:

[ { "id": "597efe0e-d23c-4f99-bd53-56a788691725", "answersReq": [ false, false, false, false ], "type": "Single" }, { "id": "447a2c47-77e0-45e3-bcc9-c79f9f9514f1", "answersReq": [ false, false, false, false ], "type": "Multiple" }
]

Mảng hiện tại đang xử lý ở Frontend, tạm gọi là arrayB:

 [ { "id": "597efe0e-d23c-4f99-bd53-56a788691725", "isOpen": true, "type": "Single", "timerEnabled": true, "timerValue": 90, "timerUnit": "S", "question": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "options": [ "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi." ], "answers": null, "sortNo": 1 }, { "id": "447a2c47-77e0-45e3-bcc9-c79f9f9514f1", "isOpen": true, "type": "Multiple", "timerEnabled": true, "timerValue": 90, "timerUnit": "S", "question": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "options": [ "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi.", "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident aliquid quibusdam modi." ], "answers": null, "sortNo": 2 }
]

Giải pháp

Chuyển đổi arrayB sang arrayA sử dụng hàm sau:

const transformQuestions = (originalArray) => { return originalArray?.map((item) => { return { id: item?.id, answersReq: Array(item?.options?.length).fill(false), type: item?.type, } }) }

Giải thích code:

  • Hàm transformQuestions nhận vào giá trị originalArray là arrayB
  • Duyệt qua các phần tử trong originalArray (arrayB) sử dụng map
  • Mỗi lần duyệt qua một phần tử trong originalArray, trả ra một object mới có các trường dữ liệu mới { id, answerReq, type }

Vì sao lại dùng map() mà không phải là forEach?

Cơ chế của hàm map() là tạo ra một array mới mà không làm thay đổi array cũ, khác với forEach là sẽ làm thay đổi array cũ.

forEach is a method that executes a provided function once for each element in an array. It does not return a new array, but instead modifies the original array. - Rohit Bansal

Bình luận

Bài viết tương tự

- vừa được xem lúc

Blog#173: Introduction to Advanced JavaScript Concepts - Advanced JavaScript Part 1

Hi, I'm Tuan, a Full-stack Web Developer from Tokyo . JavaScript is an essential language for web development, and learning advanced concepts can significantly improve your programming skills.

0 0 22

- vừa được xem lúc

Blog#174: 🤔Understanding Asynchronous JavaScript: 🔄Callbacks, 🤞Promises, and 🤝Async/Await

Hi, I'm Tuan, a Full-stack Web Developer from Tokyo . 1. Introduction to Asynchronous JavaScript. What is Asynchronous JavaScript.

0 0 28

- vừa được xem lúc

Blog#175: 🧐Mastering JavaScript's Execution Context and Closures🚀

Hi, I'm Tuan, a Full-stack Web Developer from Tokyo . 1. Understanding Execution Context. A Quick Overview.

0 0 25

- vừa được xem lúc

Blog#177: 🤔MAYBE YOU DON'T KNOW - 👌Using Node-Postgres in Node.js Express✨

Hi, I'm Tuan, a Full-stack Web Developer from Tokyo . In this article, we'll walk you through a step-by-step guide on using node-postgres with Node.

0 0 30

- vừa được xem lúc

Blog#176: 💪The Power of JavaScript Functional Programming🚀

. The main goal of this article is to help you improve your English level. I will use Simple English to introduce to you the concepts related to software development.

0 0 23

- vừa được xem lúc

[Javascript] Nâng cấp kỹ thuật tạo Tham số trong Hàm JS

1. Khái niệm.

0 0 22