Машинопись, как вызывать и получать доступ к словарным ключам из цикла - PullRequest
0 голосов
/ 11 марта 2020

У меня есть словарь, подобный приведенному ниже

let dict = {
             a:{
                first:1, 
                second:2
               },
             b:{
                first:2, 
                second:3
               }
           }

Я хочу провести l oop через первый набор ключей, а затем манипулировать вторым набором ключей. что-то вроде следующего кода:

    for(const firstKey of dict){
        firstKey.first = 5
    }

Проблема в том, что компилятор выдает мне ошибку на firstKey.first = 5, говоря:

Property 'first' does not exist on type 'string'. 

Почему это происходит? Я также попробовал firstKey[first], который тоже не работал.

1 Ответ

3 голосов
/ 11 марта 2020

Ключи не повторяются. Вам нужно использовать Object.keys (), чтобы получить массив ключей для итерации, таким образом:

for(const key of Object.keys(dict)) { 
   console.log(key, dict[key]);
}
...