как перебрать массив объектов, чтобы получить ключ и значение в машинописи - PullRequest
1 голос
/ 14 апреля 2020

У меня есть массив объектов, и я хотел бы получить ключ и значение путем его итерации, однако я получаю только 0, 1 в качестве индекса. кто-нибудь знает почему?

const vairable = [{key1: "value1"}, {key2: "value2"}]
Object.keys(vairable).forEach((i: any) => {
    console.log(i); # get 0 and 1, I would like to have key1, key2
});

Ответы [ 4 ]

4 голосов
/ 14 апреля 2020

Object.keys дает индексы самого массива, а не объекты в значениях. Переберите значения и изучите их:

const variable = [{key1: "value1"}, {key2: "value2"}];

for (const value of variable) {
    const firstKey = Object.keys(value)[0];
    console.log(firstKey);
}
1 голос
/ 14 апреля 2020

Пожалуйста, попробуйте вот так.

const vairable = [{key1: "value1"}, {key2: "value2"}]
vairable.forEach(item =>{
    for (const [key, value] of Object.entries(item)){
       console.log(key , value)
    }
})

будет выводиться:

key1 value1
key2 value2
1 голос
/ 14 апреля 2020

Метод Object.keys работает с Объектом, а не с Массивами. Если вы хотите, чтобы все oop через объект, то он будет работать нормально, как показано ниже,

const keys = {key1: "value1", key2: "value2"};

Object.keys(keys).forEach((key) => {
  console.log(key);
});
1 голос
/ 14 апреля 2020

Как насчет этого: L oop через массив:

const vairable = [{key1: "value1"}, {key2: "value2"}]
for(let e of vairable) {
  console.log(Object.keys(e))
}
...