var arr = { foo : 1, bar: { baz : 2 }, bee : 3 }
function getter(variable) {
return arr[variable];
}
Nếu tôi muốn 'foo' vs 'bee' tôi có thể làm arr[variable]
- thật dễ dàng và chức năng thực hiện điều đó.Trong javascript làm thế nào tôi có thể tự động nhận được thuộc tính lồng nhau của một đối tượng
Nhưng điều gì xảy ra nếu tôi muốn nhận được arr.bar.baz
AKA arr[bar][baz]
?
Tôi có thể chuyển đến hàm getter để cho phép tôi làm điều đó, (và tất nhiên cũng cho phép tôi lấy các thuộc tính không lồng nhau bằng cùng một hàm).
Tôi đã thử getter('bar.baz')
và getter('[bar][baz]')
nhưng những thứ đó không hiệu quả.
Tôi cho rằng tôi có thể phân tích cú pháp dấu chấm hoặc dấu ngoặc vuông (như tại đây: In javascript, test for property deeply nested in object graph?). Có cách nào sạch hơn không? (Bên cạnh việc đánh giá khóa học.)
Đặc biệt là vì tôi cần thiết lập đúng mức nhiều lần trong một vòng lặp cho một loạt các phần tử mảng.
Tại sao bạn không chỉ sử dụng cách tiếp cận đó từ câu hỏi được liên kết? – Shi
Chủ yếu là do chi phí gọi hàm thường xuyên, và nếu có cách nào tốt hơn thì tôi muốn học nó. – Ariel