Javascript 迭代json数组并将每个值推送到angular js中的列表中

Javascript 迭代json数组并将每个值推送到angular js中的列表中,javascript,php,arrays,json,angularjs,Javascript,Php,Arrays,Json,Angularjs,我对angular JS非常陌生。我的问题是,我有一个json数组,我从php页面获得ajax响应。我正在迭代这个json数组,我想按如下方式推送列表中的每个值 angular.forEach($scope.companies.area, function(value, key) { $scope.comp = [ { 'name': value1 }, { 'name': value2 }, { 'name': value3 }

我对angular JS非常陌生。我的问题是,我有一个json数组,我从php页面获得ajax响应。我正在迭代这个json数组,我想按如下方式推送列表中的每个值

angular.forEach($scope.companies.area, function(value, key) {
      $scope.comp = [
         { 'name': value1 },
         { 'name': value2 },
         { 'name': value3 }
      //...
      ]
});
我怎样才能列这个清单? 我的Json数据是

{“1”:“Audugodi”,“2”:“Yelahanka空军站”,“3”:“Agaram”,“4”:“Anadanagar”,“5”:“阿拉伯语学院”,“6” “巴纳萨瓦迪”,“7”:“巴纳桑卡里”,“8”:“巴纳桑卡里II期”,“9”:“巴纳桑卡里III期”,“10”:“班加罗尔” 城市,“11”:“班加罗尔GPO”,“12”:“班纳尔加塔”,“13”:“班纳尔加塔路”,“14”:“巴萨瓦纳古迪”,“15”:“巴萨维斯瓦拉纳加”
}

这并不是特定于角度。您可以完全按照您所说的操作:将值推入数组:

$scope.comp = [];
$scope.companies.area.forEach(function(value) {
    $scope.comp.push({ name: value });
});

使用一个简单的
数组.prototype.map
会更容易:

  $scope.comp = $scope.companies.area.map(function(value) {
      return { name: value };
  });
由于您的数据实际上是一种对象格式,因此必须对其进行一些更改才能与.map一起使用(原始JSON数据位于底部供参考):

未使用.Map从复制的示例

var colors = [
    {r: 255, g: 255, b: 255 }, // White
    {r: 128, g: 128, b: 128 }, // Gray
    {r: 0,   g: 0,   b: 0   }  // Black
];

var newColors = [];

for (var i = 0; i < colors.length; i++) {
    transformed = {
        r: Math.round( colors[i].r / 2 ),
        g: Math.round( colors[i].g / 2 ),
        b: Math.round( colors[i].b / 2 )
    };

    newColors.push(transformed);
}

// Outputs:
// [
//    {r: 128, g: 128, b: 128 },
//    {r: 64,  g: 64,  b: 64  },
//    {r: 0,   g: 0,   b: 0   }
// ];
console.log(newColors);

请阅读这篇精彩的

解释。事实上,这篇文章比forEach+
push
要干净得多!它在这里不起作用。我的代码是var helloApp=angular.module(“helloApp”,[]);helloApp.controller(“CompanyCtrl”,function($scope,$http){$http.post('class_locaality.php?flag=1').success(function(data){$scope.companys=data;$scope.comp=$scope.companys.area.map(function(value){return{name:value};});}).error(function(function(data){//log error});});你能在AJAX响应中发布你得到的JSON吗?(编辑您的原始问题并添加){“1”:“奥杜戈迪”,“2”:“叶拉汉卡空军站”,“3”:“阿加兰”,“4”:“阿纳达纳格尔”,“5”:“阿拉伯学院”,“6”:“巴纳萨瓦迪”,“7”:“巴纳桑卡里”,“8”:“巴纳桑卡里二期”,“9”:“巴纳桑卡里三期”,“10”:“班加罗尔市”,“80”:“圣托马斯镇”,“81”:“Subramanyanagar”,“95”:“Yelahanka”,“96”:“Yeshwanthpur”}当您说它不工作时,您会在控制台中看到什么错误?
var colors = [
    {r: 255, g: 255, b: 255 }, // White
    {r: 128, g: 128, b: 128 }, // Gray
    {r: 0,   g: 0,   b: 0   }  // Black
];

var newColors = [];

for (var i = 0; i < colors.length; i++) {
    transformed = {
        r: Math.round( colors[i].r / 2 ),
        g: Math.round( colors[i].g / 2 ),
        b: Math.round( colors[i].b / 2 )
    };

    newColors.push(transformed);
}

// Outputs:
// [
//    {r: 128, g: 128, b: 128 },
//    {r: 64,  g: 64,  b: 64  },
//    {r: 0,   g: 0,   b: 0   }
// ];
console.log(newColors);
var newColors = colors.map(function(val) {
    return {
        r: Math.round( val.r / 2 ),
        g: Math.round( val.g / 2 ),
        b: Math.round( val.b / 2 )
    };
});