Considere una const que contiene un objeto con múltiples niveles como este:
const test = { One: { a: 220, b: ['Chipotle', 'Subway', 'Habit Burger'], }, Two: { a: 110, b: ['Chipotle'], }, Three: { a: 200, b: ['Subway', 'Jack In The Box'], }, Four: { a: 460, b: ['Chipotle', 'Subway', 'Habit Burger', 'Jack In The Box'], }, }; Sé que, por ejemplo, si quiero acceder a valor del primer objeto, puedo decir test.One.a , pero ¿cómo accedo mediante programación al valor de test.One , test.Two , etc. sin codificarlo?
Use la notación de corchetes para acceder a las propiedades:
test["One"]["a"]; test["Two"]["b"];Estos funcionan con cadenas, por lo que puede usar variables:
const test = { One: { a: 220, b: ['Chipotle', 'Subway', 'Habit Burger'], }, Two: { a: 110, b: ['Chipotle'], }, Three: { a: 200, b: ['Subway', 'Jack In The Box'], }, Four: { a: 460, b: ['Chipotle', 'Subway', 'Habit Burger', 'Jack In The Box'], }, }; const first = Object.keys(test)[Math.floor(Math.random() * 4)]; const second = ["a", "b"][Math.floor(Math.random() * 2)]; console.log(first, second, test[first][second])