繁体   English   中英

For 循环在数组中不起作用(Javascript,Angular 2)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM