如何遍历对象内的数组

时间:2018-09-19 10:34:21

标签: javascript angularjs foreach

我具有以下格式的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中的任何值。forEach循环中的主题需要迭代。代码中还缺少其他什么?

2 个答案:

答案 0 :(得分:4)

对不起,但您Json的身体不好。我非常确定这是由于您的数据名称所致。如果是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);
      });

答案 1 :(得分:-1)

我认为您在数据之后缺少一个冒号(:)。

public_network

这对我有用。