次のような再帰関数を使用できます。
var x = {
foo: 17,
bar: {
a: 2,
b: 7
}
}
function parseObject(something) {
var keys = Object.keys(something);
for (var i = 0; i < keys.length; i++) {
if (typeof something[keys[i]] === 'object') parseObject(something[keys[i]])
else console.log(keys[i] + " : " + something[keys[i]]);
}
}
parseObject(x);
出力を生成するもの:
foo : 17
a : 2
b : 7
この機能に関する注意事項。オブジェクトであるすべてを再帰します。たとえば、オブジェクトに配列がある場合、配列内の項目ごとに個別の行が表示されます。
したがって、次のオブジェクトの場合:
var x = {
foo: 17,
bar: {
a: 2,
b: 7
},
foobar: [1,2,3]
}
出力は次のようになります。
foo : 17
a : 2
b : 7
0 : 1
1 : 2
2 : 3
これを処理する方法は明らかにありますが、要件を満たすように関数を調整する必要があります。