我正在尝试将这两个值插入到js数组中。
$scope.ttabs = [];
for(p = 1; p <= $scope.no_of_groups; p++) {
$scope.ttabs[p] = [1];
console.log($scope.ttabs);
}
p $ scope.no_of_groups此处的值为2.
现在我得到控制台输出为..
[undefined, [1], [1]]
为什么它在第一个索引处显示未定义?
答案 0 :(得分:3)
因为你从索引1
开始。数组的索引从0
开始。在您的代码中,您没有为索引0
分配任何值,因此它将具有默认值未定义。
将代码更改为从0开始,并从条件中删除等号。
$scope.ttabs = [];
for(var p = 0; p < $scope.no_of_groups; p++) {
$scope.ttabs[p] = [1];
console.log($scope.ttabs);
}
console.log($scope.ttabs);
输出
[[1], [1]]
答案 1 :(得分:2)
{{1}}
Javascript数组从第0个索引开始 所以你在第一个地方得到了不确定
答案 2 :(得分:0)
因为你开始p = 1,当你把它作为索引分配给数组时,数组的长度分配为2,因为数组是索引0的索引。因为在索引0处没有插入数组,所以索引未定义。
var ar = [];
for(var i = 1;i < 2;i++){
ar[1] = 1;
}
console.log(ar) // outputs [undefined, 1, 1]
,同时:
var ar = [];
for(var i = 0;i < 2;i++){
ar[1] = 1;
}
console.log(ar) // outputs [1, 1]