JSONGibt es eine bessere Möglichkeit, dieses Objekt zu durchlaufen?
var data = {
"countries": {
"europe" : [{name: "England", abbr: "en"}, {name: "Spain", abbr: "es"}],
"americas" : [{name: "Unites States"}],
"asia" : [{name: "China"}]
}
};
JS
for (k in data) {
for (x in data[k]) {
var cObj = data[k][x];
$("#list").append(
"<li><p>" + x + "</p></li>"
);
for (var i=0; i < cObj.length; i++) {
$("#list").append(
"<div> " + cObj[i].name + " </div>"
);
}
}
}
Ich bin das erwartete Ergebnis. Aber ich habe das Gefühl, dass ich zu viele For-Schleifen benutze. Hier ist mein jsfiddle Beispiel.
Blick in [Object.keys()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Objekt/keys) –
'.append()' arbeitet mit Arrays, so dass es möglich ist, die Funktion auf eine einzige 'forEach()' Schleife zu reduzieren. Siehe meine Lösung. –