[英]For loop doesn't work in array (Javascript, Angular 2)
我有一个包含相机规格的数组,当我尝试运行 for 循环来获取元素时会出现问题。
这是我的数组的内容:
我尝试了所有不同类型的 for 循环,如 forEach、带增量或 for 的基本 for 循环( let item of myArray
)
For 循环没有运行,我没有返回数组中的元素。
for (let id in elements) {
if (typeof elements[id].brands !== 'undefined') {
delete this.items;
let itemsArray = [];
for (let elementData of elements[id].brands) {
this.http.get("assets/data/" + elementData + "Reflex.json").map(res => res.json()).subscribe(data => {
Array.prototype.push.apply(itemsArray, data);
});
}
this.items = itemsArray;
}
if (typeof elements[id].sensorSize !== 'undefined') {
}
}
( this.items
是您可以在顶部看到的数组(我使用的是 Angular2))。
试试这段代码,它会迭代数组本身,并将其中的所有项目作为内联函数中的对象返回。
this.items.forEach( function (item)
{
item.xxx=11;
} );
this.http.get("assets/data/" + elementData + "Reflex.json").map(res => res.json()).subscribe(data => {
Array.prototype.push.apply(itemsArray, data);
});
这个调用有问题。它是异步的。
for 循环不会等待响应将数据推送到itemArray
。 获取数组的粗略方法是:
this.http.get("assets/data/" + elementData + "Reflex.json").map(res => res.json()).subscribe(data => {
Array.prototype.push.apply(this.items, data);//make sure this.items is set to empty previous to call
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.