For循环不';不能在数组中工作(Javascript,2)
我有一个包含摄像机规格的数组,当我试图运行for循环来获取元素时,就会出现问题 以下是我的数组的内容: 我尝试了所有不同类型的for循环,如forEach、带增量的basic for循环或for(For循环不';不能在数组中工作(Javascript,2),javascript,arrays,angular,Javascript,Arrays,Angular,我有一个包含摄像机规格的数组,当我试图运行for循环来获取元素时,就会出现问题 以下是我的数组的内容: 我尝试了所有不同类型的for循环,如forEach、带增量的basic for循环或for(let-item of myArray) For循环没有运行,并且我没有返回数组中的元素 for (let id in elements) { if (typeof elements[id].brands !== 'undefined') { delete this.i
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;
} );
这个调用就是问题所在。它是异步的
for循环不会等待响应将数据推入itemrarray
。
获取阵列的大致方法是:
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
});
您可能通过http调用获得了
这个。items
,当您的代码到达循环时,它是未定义的。您是否尝试过最基本的循环?for(让i=0;我能在运行for循环的地方添加代码吗?你应该发布你的整个脚本,我不认为问题来自for循环(或者我们都应该停止使用JS,开始罢工…),但从没有填充值的项目列表中。您确实知道,这个.http.get
是一个http呼叫,正如我在第一条评论中所说的,对吗?当我开始在手机中编辑答案时,还没有帖子,所以不知道有人在写同样的内容。@torazaburo sry.。评论是针对MiroI的,只是让hi知道(我试试看。)和平
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
});