Как получить доступ к объекту из скрипта типа Array in Type - PullRequest
0 голосов
/ 13 июля 2020

У меня есть список объектов в таком массиве:

    [
      0: {name: "John", data: 0: [{age: 24}, {icon: "04d"}]},
      1: {name: "Vicky",data: 0: [{age: 25}, {icon: "06d"}]},
      2: {name: "John2",data: 0: [{age: 26}, {icon: "05d"}]},
      4: {name: "John3",data: 0: [{age: 27}, {icon: "09d"}]},
    ]

Я пытаюсь получить доступ к таким объектам.

    *ngFor="let weather_data of weather_data_info" 

в моем HTML, но я не может получить доступ к элементам, как указано выше, может ли кто-нибудь сказать мне, что я делаю не так, любой другой альтернативный метод также приветствуется

1 Ответ

1 голос
/ 13 июля 2020

Вам необходимо преобразовать ассоциативный массив в массив, поскольку JS не имеет такого типа.

И ваши внутренние данные тоже недействительны

data: 0: [{age: 24}, {icon: "04d"}]
// This is not a valid structure

Вам нужно удалить ключи из массива:

const weather_data_info = [
              {name: "John", data: {0: [{age: 24}, {icon: "04d"}]}},
              {name: "Vicky",data: {0: [{age: 25}, {icon: "06d"}]}},
              {name: "John2",data: {0: [{age: 26}, {icon: "05d"}]}},
              {name: "John3",data: {0: [{age: 27}, {icon: "09d"}]}},
];

Или, если вы хотите использовать index ключи как ID, вы можете преобразовать его в объект и использовать Object.values() или Object.keys() чтобы перебрать его:

const data = {
          0: {name: "John", data: {0: [{age: 24}, {icon: "04d"}]}},
          1: {name: "Vicky",data: {0: [{age: 25}, {icon: "06d"}]}},
          2: {name: "John2",data: {0: [{age: 26}, {icon: "05d"}]}},
          4: {name: "John3",data: {0: [{age: 27}, {icon: "09d"}]}},
};
const weather_data_info = Object.keys(data).reduce((acc, key) => {
    acc.push({...data[key], id: key});
    return acc;
},[]);

console.log(weather_data_info)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...