Javascript angularjs中的嵌套循环

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",

我一直在使用嵌套循环访问json对象的数据,以显示topping的id和类型,但是它不起作用。这是我的密码:

    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){
?我想你只需要一个forEach
angular.forEach(j_obj.topping,function(innerobject){Outer_log.push(“ID:+innerobject.ID+”type:+innerobject.type);},Outer_log)实际上,我会有多个这样的对象,因此使用了一个外部循环。为什么要尝试这样做呢?forEach(j_obj,function(an_object){
?在我看来,你只需要一个forEach
angular.forEach(j_obj.topping,function(innerobject){outer_log.push(“ID:+innerobject.ID+”type:+innerobject.type)},outer_log)实际上,我会有多个这样的对象,因此使用了一个外循环