在javascript中创建和初始化二维数组

在javascript中创建和初始化二维数组,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我正在尝试在AngularJS应用程序中用javascript创建并初始化二维数组,如下所示: $scope.invalidVote = []; for (var i = 0; i < $scope.arry1.length; i += 1) { $scope.answersCount[i] = $scope.arry1[i].arry2.length; for(var j = 0; j < $scope.arry1[i].arry2.length; j += 1)

我正在尝试在AngularJS应用程序中用javascript创建并初始化二维数组,如下所示:

$scope.invalidVote = [];
for (var i = 0; i < $scope.arry1.length; i += 1) {
    $scope.answersCount[i] = $scope.arry1[i].arry2.length;

    for(var j = 0; j < $scope.arry1[i].arry2.length; j += 1) {
        $scope.invalidVote[i][j] = false;
    }
}
$scope.invalidVote=[];
对于(变量i=0;i<$scope.arry1.length;i+=1){
$scope.answerscont[i]=$scope.arry1[i].arry2.length;
对于(变量j=0;j<$scope.arry1[i].arry2.length;j+=1){
$scope.invalidVote[i][j]=假;
}
}
但是它不起作用,什么是正确的方法呢?

试试这个:

$scope.invalidVote = [];
for (var i = 0; i < $scope.arry1.length; i++) {
    $scope.answersCount[i] = $scope.arry1[i].arry2.length;
    $scope.invalidVote[i] = [];

    for(var j = 0; j < $scope.arry1[i].arry2.length; j++) {
        $scope.invalidVote[i][j] = false;
    }
 }
$scope.invalidVote=[];
对于(变量i=0;i<$scope.arry1.length;i++){
$scope.answerscont[i]=$scope.arry1[i].arry2.length;
$scope.invalidVote[i]=[];
对于(var j=0;j<$scope.arry1[i].arry2.length;j++){
$scope.invalidVote[i][j]=假;
}
}
试试这个:

$scope.invalidVote = [];
for (var i = 0; i < $scope.arry1.length; i++) {
    $scope.answersCount[i] = $scope.arry1[i].arry2.length;
    $scope.invalidVote[i] = [];

    for(var j = 0; j < $scope.arry1[i].arry2.length; j++) {
        $scope.invalidVote[i][j] = false;
    }
 }
$scope.invalidVote=[];
对于(变量i=0;i<$scope.arry1.length;i++){
$scope.answerscont[i]=$scope.arry1[i].arry2.length;
$scope.invalidVote[i]=[];
对于(var j=0;j<$scope.arry1[i].arry2.length;j++){
$scope.invalidVote[i][j]=假;
}
}

我假设
$scope.arry1[I]
是一个包含其他数组的数组,并且已经填充了值。 因此,您的代码应该如下所示:

$scope.invalidVote = $scope.arry1;
for (var i = 0; i < $scope.arry1.length; i += 1) 
  {
    $scope.answersCount[i] = $scope.arry1[i].length;
    for(var j = 0; j < $scope.arry1[i].length; j += 1)
      {
        $scope.invalidVote[i][j] = false;
      }
  }
$scope.invalidVote=$scope.arry1;
对于(变量i=0;i<$scope.arry1.length;i+=1)
{
$scope.answerscont[i]=$scope.arry1[i]。长度;
对于(变量j=0;j<$scope.arry1[i]。长度;j+=1)
{
$scope.invalidVote[i][j]=假;
}
}

“$scope.invalidVote=$scope.arry1;”像这样声明“invalidVote”可以确保它包含相同数量的索引。

我假设
$scope.arry1[I]
是一个包含其他数组的数组,并且已经填充了值。 因此,您的代码应该如下所示:

$scope.invalidVote = $scope.arry1;
for (var i = 0; i < $scope.arry1.length; i += 1) 
  {
    $scope.answersCount[i] = $scope.arry1[i].length;
    for(var j = 0; j < $scope.arry1[i].length; j += 1)
      {
        $scope.invalidVote[i][j] = false;
      }
  }
$scope.invalidVote=$scope.arry1;
对于(变量i=0;i<$scope.arry1.length;i+=1)
{
$scope.answerscont[i]=$scope.arry1[i]。长度;
对于(变量j=0;j<$scope.arry1[i]。长度;j+=1)
{
$scope.invalidVote[i][j]=假;
}
}

“$scope.invalidVote=$scope.arry1;”像这样声明“invalidVote”可以确保它包含相同数量的索引。

我假定$scope.arry1存在并且是数组?我假定$scope.arry1存在并且是数组?
$scope.arry1[I]。arry2.length
将不起作用。它应该是
$scope.arry1[1].length
-假设arry1是一个数组数组,而不是一个对象数组,所有对象都有一个属性arry2,这是一个数组这是只有原始海报才能回答的问题你是对的。否则它就不会是二维数组。
$scope.arry1[i].arry2.length
将无法工作。它应该是
$scope.arry1[1].length
-假设arry1是一个数组数组,而不是一个对象数组,所有对象都有一个属性arry2,这是一个数组这是只有原始海报才能回答的问题你是对的。不过,如果不是这样,它就不会是二维数组。