使用javascript / angularjs构建动态json

时间:2018-03-12 05:44:16

标签: javascript arrays angularjs json ecmascript-5

我正在使用angularjs使用来自服务器的数据构建动态json。我已将其声明如下。它只适用于来自服务器的数据在对象数组中有一个项目。我应该如何声明它能够动态工作?



$scope.items = [{
  id: “”,
  locations: [{
    name: “”
  }]
}]






 for (var i=0; i<$scope.data.length; i++)
    {
    	$scope.items[i].id = $scope.data[i].id;
        for(var j=0; j<$scope.data[i].locations.length; j++) {
             $scope.items[i].locations[j].name = $scope.data[i].locations[j].name;
        }
    }
&#13;
&#13;
&#13;

仅当来自服务器的一条记录

时才有效

3 个答案:

答案 0 :(得分:0)

在for循环中使用push()方法将数据添加到项目中。

for (var i=0; i<$scope.data.length; i++)
{
   //create a json object from your result.
   let obj = { id: $scope.data[i].id, locations: .....};
   $scope.items.push(obj)
}

答案 1 :(得分:0)

你可以这样做

 var $scope.items = [];
    for (var i=0; i<$scope.data.length; i++)
    {
        var obj ={};
        obj.id = $scope.data[i].id;
        obj. locations = $scope.data[i].locations;// can assign locations array here.
        $scope.items.push(obj);
    }

答案 2 :(得分:0)

实际问题是

$ scope.data已经是数组,其中包含可以访问其索引i的数据

其中$ scope.items是数组,但仍未编入索引,因此解决方案是 1.使用Push添加数据 2.首先用json创建索引,然后添加数据

$scope.items = [];
for (var i=0; i<$scope.data.length; i++)
{
    $scope.items[i]={id : $scope.data[i].id , locations:[]};
    for(var j=0; j<$scope.data[i].locations.length; j++) {
         $scope.items[i].push($scope.data[i].locations[j].name);
    }
}
console.log($scope.items);