Для циклов в 2d массиве AngularJS

#angularjs #loops #for-loop

#angularjs #циклы #для цикла

Вопрос:

Я пытаюсь заполнить 2D массив в AngularJS, но я застрял в логической части. По сути, я пытаюсь заполнить что-то подобное данными, полученными из базы данных:

 [
[BizTech, marks, recommendations],
[IT, marks, recommendations]
]
  

Количество модулей зависит от количества записей в базе данных. Как именно мне выполнить цикл по 2D массиву, чтобы вставить записи?

Код, который у меня есть прямо сейчас, выглядит следующим образом:

 for (var i = 0; i == 10; i  ) {
     $scope.resultsArray[0][0].push($scope.moduleCode)
     $scope.resultsArray[0][1].push($scope.marks)
     $scope.resultsArray[0][2].push($scope.moduleRecommendation)
                               }
  

Редактировать:

Я перешел на цикл for, но когда я выполняю console.log($scope.resultsArray, «результаты»), появляется сообщение об ошибке

 Uncaught TypeError: Cannot read property '0' of undefined.
  

Что здесь пошло не так?

Комментарии:

1. Похоже, вам нужен только один цикл, потому что внутренние массивы всегда одинакового размера (есть причина, по которой вы используете массивы для записей? обычные объекты были бы более подходящими). Но ваш пример кода сейчас не имеет смысла, потому что $scope.moduleCode и т.д. будут иметь одинаковое значение для всего цикла.

2. Также вы не можете использовать длину массива в цикле, если вы будете добавлять еще несколько элементов внутри цикла.

3. @mojarras Какой предел я должен установить для цикла, если я не могу использовать длину массива?

4. Ну, вы всегда должны устанавливать фиксированное значение в качестве счетчика циклов, чтобы ваш цикл мог правильно начинаться и заканчиваться. Если вы используете переменную, которая будет изменять свое значение внутри цикла, вот тогда вы получите ошибки бесконечного цикла. Это фиксированное значение должно быть ответом на вопрос: «Сколько раз я хочу, чтобы мой цикл выполнялся?» и это, конечно, будет определяться логикой, которую вы пытаетесь выполнить.