Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环不';不能在数组中工作(Javascript,2)_Javascript_Arrays_Angular - Fatal编程技术网

For循环不';不能在数组中工作(Javascript,2)

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

我有一个包含摄像机规格的数组,当我试图运行for循环来获取元素时,就会出现问题

以下是我的数组的内容:

我尝试了所有不同类型的for循环,如forEach、带增量的basic 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;
} );
这个调用就是问题所在。它是异步的

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

      });