JSONこのオブジェクトをループするより良い方法はありますか?
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>"
);
}
}
}
は私が期待される結果を取得しています。しかし、私はあまりにも多くのループを使用しているような気がします。ここに私のjsfiddleの例があります。
[Object.keys()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) –
'.append()'は配列と連動するので、関数を単一の 'forEach()'ループに減らすことができます。私の解決策を見てください。 –