Javascript 迭代json数组并将每个值推送到angular js中的列表中
我对angular JS非常陌生。我的问题是,我有一个json数组,我从php页面获得ajax响应。我正在迭代这个json数组,我想按如下方式推送列表中的每个值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.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 )
};
});