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;