我在数组中有一个这样的对象列表:
[
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中,但是我无法访问上面的元素,任何人都可以告诉我我做错了什么,也可以使用其他任何替代方法
答案 0 :(得分:1)
由于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)