Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Arrays 从Json 5推入数组_Arrays_Json_Angular_Typescript_Parsing - Fatal编程技术网

Arrays 从Json 5推入数组

Arrays 从Json 5推入数组,arrays,json,angular,typescript,parsing,Arrays,Json,Angular,Typescript,Parsing,我从一个端点收到以下响应 { "data": [{ "volume": 4.889999866485596, "name": "Carton03", "weight": 5.75, "storage": 3 }, { "volume": 2.6500000953674316, "name": "Carton02", "weight": 4.5, "storage": 2 }, { "volume": 1.4500

我从一个端点收到以下响应

{
  "data": [{
    "volume": 4.889999866485596,
    "name": "Carton03",
    "weight": 5.75,
    "storage": 3
  }, {
    "volume": 2.6500000953674316,
    "name": "Carton02",
    "weight": 4.5,
    "storage": 2
  }, {
    "volume": 1.4500000476837158,
    "name": "Carton01",
    "weight": 5,
    "storage": 1
  }],
  "response": "true",
  "type": "Storages"
}
下面我尝试在我的组件上创建一个数组:

export class StorageComponent {
   private data: any;
   private stors: Storage [];

   constructor (private storageService: StorageService  ) {}

   storage () {
     this.data =  this.storageService.Storage(); 
     //storageService.Storage is an assistant service that parse the response 
     // and brings me back only the data-array of the response
     for (let i = 0; i < this.data.data.length; i++) {
      const storages = this.data.data[i];
      console.log(storages.storage);
      console.log(storages.name);
      console.log(storages.weight);
      console.log(storages.volume);
      this.stors[i] = storages;
     }   
  }
}

有什么想法吗?

错误是在循环的第一次迭代期间,由于未定义
this.stors[0]
的赋值,因此不可能。
stors
属性尚未初始化。考虑:

constructor (private storageService: StorageService) {
    this.stors = [];
}

定义
stors
属性时只需进行初始化,如下所示:

private stors: Storage[] = [];
您还可以初始化其他属性:

private data: any = null;
您可以在构造函数或ngOnInit中初始化它,但我认为这样直接在属性中初始化数组是更好的方法

初始化类属性将避免此类行为

private data: any = null;