angular - 如何在 TypeScript 中遍历这些数据?
问题描述
我需要遍历存储在“testmaps”中的所有对象。
我已经尝试将“testmaps”作为起点进行迭代,但是当我这样做时,我似乎是在迭代字符串而不是映射。因此,我无法访问其中的对象。
JSON
{"testmap1":
[{"name":"testObject1","boolean1":true,"boolean2":true,"boolean3":false,"otherString":"test"},
{"name":"testObject2","boolean1":false,"boolean2":false,"boolean3":false,"otherString":"test2"}],
"testmap2":
[{"name":"testObject3","boolean1":false,"boolean2":false,"boolean3":false,"otherString":"test3"},
{"name":"testObject4","boolean1":false,"boolean2":true,"boolean3":false,"otherString":"test4"}]}
我在数据中读取的 TypeScript:
ngOnInit() {
this.http.get('http://myURL').subscribe(
data => {
this.array = data;
console.log(this.array);
},
(err: HttpErrorResponse) => {
console.log(err.message);
}
);
}
打字稿;我试图这样迭代:
ngDoCheck(){
for (let map in this.array) {
for (let item in map.valueOf){
console.log(item.otherString);
}
}
}
我试过的循环没有做任何事情。
解决方案
for (let item in data)
用于循环遍历对象中的属性。这将遍历对象属性,并且每次迭代都将返回该对象中的一个键。对于数组,尽管您可以使用forEach()
循环遍历数组中的每个元素。
let data = {
"testmap1":
[{
"name": "testObject1",
"boolean1": true,
"boolean2": true,
"boolean3": false,
"otherString": "test"
},
{
"name": "testObject2",
"boolean1": false,
"boolean2": false,
"boolean3": false,
"otherString": "test2"
}
],
"testmap2":
[{
"name": "testObject3",
"boolean1": false,
"boolean2": false,
"boolean3": false,
"otherString": "test3"
},
{
"name": "testObject4",
"boolean1": false,
"boolean2": true,
"boolean3": false,
"otherString": "test4"
}
]
};
for (let testmap in data) {
data[testmap].forEach(item => {
console.log(item.otherString);
});
}
推荐阅读
- cors - Laravel Sanctum:被带有 Nuxt Auth 模块的 CORS 策略阻止
- python - 如何使 2 个列表相互对应?
- javascript - 额外输出输出
- python - Label.image 显示 AttributeError: 'NoneType' 对象没有属性 'image'
- c# - Firebase 更新数据无法使用 FirebaseData.net nuget
- python - 我的 python 代码没有运行下一行
- python - 实现一种热编码时面临的ValueError
- python - Tensorflow Keras RMSE 指标返回的结果与我自己构建的 RMSE 损失函数不同
- c - C - 如何摆脱内存泄漏?
- python-3.x - 如何在 matplotlib 的水平条形图顶部添加标签?