Как перебрать массив в объекте - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть вывод JSON в следующем формате. {

data{
  "id" : 1,
  "age":20,
  "subjects":[
    {"code":"101", "Lecturer":"Doe"}, 
    {"code":"102", "Lecturer":"Smith"},
    {"code":"103", "Lecturer":"Jones"}
  ]
}

Я пробовал следующий код для циклического прохождения объектов из объекта данных.

$scope.values=[];
angular.forEach(data.subjects,function(value,key){
  $scope.values.push(value.Lecturer);
});

Я не вижу никакихзначения в data.subjects в цикле forEach для итерации. Что еще отсутствует в коде?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Я думаю, вам не хватает двоеточия (:) после данных.

data: {
  "id" : 1,
  "age":20,
  "subjects":[
    {"code":"101", "Lecturer":"Doe"}, 
    {"code":"102", "Lecturer":"Smith"},
    {"code":"103", "Lecturer":"Jones"}
  ]
}

Это работает для меня.

0 голосов
/ 19 сентября 2018

Извините, но вы, Джсон, не очень хорошо сложились.Я уверен, что это связано с именем ваших данных.Если это var data = {...};или var data = {data: {...}}.Для первого случая это должно быть что-то вроде

var data = {
    "id": 1,
    "age": 20,
    "subjects": [{
      "code": "101",
      "Lecturer": "Doe"
    }, {
      "code": "102",
      "Lecturer": "Smith"
    }, {
      "code": "103",
      "Lecturer": "Jones"
    }]
  };

  $scope.values = [];
  angular.forEach(data.subjects, function(value, key) {
    $scope.values.push(value.Lecturer);
  });
  console.log($scope.values);

Если у вас есть что-то вроде этого var data = {data: {...}}.Просто добавьте data.data.subjects в ваш forEach

angular.forEach(data.data.subjects, function(value, key) {
        $scope.values.push(value.Lecturer);
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...