我需要创建一个初始化为对象长度的数组。然后能够将新数据插入到数组中的索引中。
代码示例:
$scope.holder = new Array($scope.x.length);
$scope.holder[0].new_data = response.data;
但是上面会出错:
TypeError: Cannot set 'new_data' of undefined
如果我指定了数组的大小,那该怎么办?数组是不是要包含三个对象。我该如何解决这个问题?
答案 0 :(得分:3)
$scope.holder = new Array($scope.x.length);
$scope.holder[0] = {'new_data': response.data};
UPD :或者您可以创建对象数组
$scope.holder = Array.apply(null, Array($scope.x.length)).map(function () { return new Object(); })
$scope.holder[0].new_data = response.data;
答案 1 :(得分:3)
在这种情况下,[0]
中的第一个Array
元素必须为Object
,因为现在它是undefined
并且您无法将属性分配给undefined
,您需要创建空Object
({}
),然后为其指定属性
$scope.holder = new Array($scope.x.length);
$scope.holder[0] = {};
$scope.holder[0].new_data = response.data;