Giả sử tôi có các đối tượng sau đây:Làm cách nào để hủy cấu trúc thành các biến được đặt tên động trong ES6?
const user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
};
Và rằng tôi muốn chỉ id
và fullName
.
tôi sẽ làm như sau:
const { id, fullName } = user
Dễ dàng peasy, phải không?
Bây giờ, giả sử rằng tôi muốn thực hiện phá hủy dựa trên giá trị của biến số khác được gọi là fields
.
const fields = [ 'id', 'fullName' ]
Bây giờ câu hỏi của tôi là: Làm cách nào để tôi có thể hủy dựa trên một loạt khóa?
Tôi không biết xấu hổ thử như sau nhưng không thành công:
let {[{...fields}]} = user
và let {[...fields]} = user
. Có cách nào mà điều này có thể được thực hiện?
Cảm ơn bạn
Dưới đây là một câu hỏi liên quan về destructuring tất cả các thuộc tính: http://stackoverflow.com/ question/31907970/how-do-i-destructure-all-properties-in-the-current-range-closure-in-es2015 - Có lẽ câu trả lời tương tự được áp dụng ở đây – CodingIntrigue
Nếu 'trường' được thay đổi thành một mảng trống thì bạn sẽ không tạo ra biến nào và bất kỳ mã nào sau đó sẽ bị nguy hiểm. Sử dụng một const với literals đảm bảo rằng nguy cơ có thể được xác định trước nhưng một cái gì đó như 'fields = nonliteralvar' sẽ tạo ra vấn đề. –