Javascript angularjs中的嵌套循环
我一直在使用嵌套循环访问json对象的数据,以显示topping的id和类型,但是它不起作用。这是我的密码:Javascript angularjs中的嵌套循环,javascript,angularjs,Javascript,Angularjs,我一直在使用嵌套循环访问json对象的数据,以显示topping的id和类型,但是它不起作用。这是我的密码: var j_obj = { "id": "0001", "type": "donut", "name": "Cake", "ppu": 0.55, "batters": { "batter": [{ "id": "1001", "type": "Regular" }, { "id": "1002",
var j_obj = {
"id": "0001",
"type": "donut",
"name": "Cake",
"ppu": 0.55,
"batters": {
"batter": [{
"id": "1001",
"type": "Regular"
}, {
"id": "1002",
"type": "Chocolate"
}, {
"id": "1003",
"type": "Blueberry"
}, {
"id": "1004",
"type": "Devil's Food"
}]
},
"topping": [{
"id": "5001",
"type": "None"
}, {
"id": "5002",
"type": "Glazed"
}, {
"id": "5005",
"type": "Sugar"
}, {
"id": "5007",
"type": "Powdered Sugar"
}, {
"id": "5006",
"type": "Chocolate with Sprinkles"
}, {
"id": "5003",
"type": "Chocolate"
}, {
"id": "5004",
"type": "Maple"
}]
}
var Outer_log=[];
debugger
angular.forEach(j_obj, function(an_object){
//Outer_log.push("ID : "+an_object.id+" type : "+an_object.type);
angular.forEach(an_object.topping,function(innerobject){
Outer_log.push("ID : "+innerobject.id+" type : "+innerobject.type);
},Outer_log);
});
console.log(Outer_log);
请有人强调一下上面代码中的错误,谢谢Angulars
forEach
旨在迭代数组而不是对象。如果你把代码改成这样
var j_obj = [{ ...}] //object is wrapped inside array.
它会起作用的。另一件事是在这种情况下不需要嵌套循环。您只需执行以下操作:
angular.forEach(j_obj.topping, function(key, value){ ... });
Angulars
forEach
用于迭代数组而不是对象。如果你把代码改成这样
var j_obj = [{ ...}] //object is wrapped inside array.
它会起作用的。另一件事是在这种情况下不需要嵌套循环。您只需执行以下操作:
angular.forEach(j_obj.topping, function(key, value){ ... });
您在对象上迭代,其中as循环在数组上运行 希望这有帮助
var j_obj=[{
“id”:“0001”,
“类型”:“甜甜圈”,
“名字”:“蛋糕”,
“ppu”:0.55,
“击球手”:{
“面糊”:[{
“id”:“1001”,
“类型”:“常规”
}, {
“id”:“1002”,
“类型”:“巧克力”
}, {
“id”:“1003”,
“类型”:“蓝莓”
}, {
“id”:“1004”,
“类型”:“魔鬼食品”
}]
},
“浇头”:[{
“id”:“5001”,
“类型”:“无”
}, {
“id”:“5002”,
“类型”:“釉面”
}, {
“id”:“5005”,
“类型”:“糖”
}, {
“id”:“5007”,
“类型”:“糖粉”
}, {
“id”:“5006”,
“类型”:“巧克力洒”
}, {
“id”:“5003”,
“类型”:“巧克力”
}, {
“id”:“5004”,
“类型”:“枫树”
}]
}]
变量外部_log=[];
forEach(j_obj,函数(an_对象){
//外部日志推送(“ID:+an\u object.ID+”类型:+an\u object.type);
angular.forEach(an_object.topping,函数(innerobject){
外部日志推送(“ID:+innerobject.ID+”类型:“+innerobject.type”);
},外螺纹圆木);
});
控制台日志(外部日志)代码>您正在对象上迭代,其中as循环在数组上运行
希望这有帮助
var j_obj=[{
“id”:“0001”,
“类型”:“甜甜圈”,
“名字”:“蛋糕”,
“ppu”:0.55,
“击球手”:{
“面糊”:[{
“id”:“1001”,
“类型”:“常规”
}, {
“id”:“1002”,
“类型”:“巧克力”
}, {
“id”:“1003”,
“类型”:“蓝莓”
}, {
“id”:“1004”,
“类型”:“魔鬼食品”
}]
},
“浇头”:[{
“id”:“5001”,
“类型”:“无”
}, {
“id”:“5002”,
“类型”:“釉面”
}, {
“id”:“5005”,
“类型”:“糖”
}, {
“id”:“5007”,
“类型”:“糖粉”
}, {
“id”:“5006”,
“类型”:“巧克力洒”
}, {
“id”:“5003”,
“类型”:“巧克力”
}, {
“id”:“5004”,
“类型”:“枫树”
}]
}]
变量外部_log=[];
forEach(j_obj,函数(an_对象){
//外部日志推送(“ID:+an\u object.ID+”类型:+an\u object.type);
angular.forEach(an_object.topping,函数(innerobject){
外部日志推送(“ID:+innerobject.ID+”类型:“+innerobject.type”);
},外螺纹圆木);
});
控制台日志(外部日志)代码>在不使用嵌套循环的情况下,您可以像这样使用angular.forEach进行迭代
var finalArray=[];
angular.forEach(j_obj[0]。顶部,函数(eachobject){
})) 在不使用嵌套循环的情况下,您可以像这样使用angular.forEach进行迭代
var finalArray=[];
angular.forEach(j_obj[0]。顶部,函数(eachobject){
})) 为什么要尝试这样做呢?angular.forEach(j_obj,function(an_object){
?我想你只需要一个forEachangular.forEach(j_obj.topping,function(innerobject){Outer_log.push(“ID:+innerobject.ID+”type:+innerobject.type);},Outer_log)实际上,我会有多个这样的对象,因此使用了一个外部循环。为什么要尝试这样做呢?forEach(j_obj,function(an_object){
?在我看来,你只需要一个forEachangular.forEach(j_obj.topping,function(innerobject){outer_log.push(“ID:+innerobject.ID+”type:+innerobject.type)},outer_log)实际上,我会有多个这样的对象,因此使用了一个外循环