Динамический ключ массива JS

1

У меня есть данные api

current: {
  errors: {},
  items: {
     Economy: {}
  }
}

Ключ объекта "Экономика" может быть разным, например "Advance"

и я называю это как

let current = current.items.Economy 

или let current = current.items.Advance

Как я могу назвать это динамически? PS Мой фронт не знает, какой ключ будет возвращен

  • 1
    Что вы подразумеваете под «называть это динамически»? Читать значение? Вызов функции? Есть только один ключ? Вы пробовали соответствующие методы Object и Array ?
Теги:
object
key

2 ответа

3
Лучший ответ

Используйте Object.entries чтобы получить каждую пару ключей и значений в объекте. Если в items есть только одна такая пара ключей, то просто выберите первую запись:

const obj = {
  current: {
    errors: {},
    items: {
      Foo: {data: 'foo data'}
    }
  }
};

const [key, val] = Object.entries(obj.current.items)[0];
console.log(key);
console.log(val);

Если вы действительно не заботитесь о имени динамического ключа и просто хотите использовать внутренний объект, вместо этого используйте Object.values.

  • 0
    Спасибо! Работает нормально
1

Вы можете использовать Object.keys(current.items).

let current = {
  errors: {},
  items: {
     Economy: {age: 10}
  }
}

let keys = Object.keys(current.items);
let currentVal = current.items[keys[0]];
console.log(currentVal);

Вы также можете использовать for цикла:

let current = {
  errors: {},
  items: {
     Economy: {age: 10}
  }
}
for(var key in current.items){
  console.log(current.items[key]);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню