JavaScriptでネストされたオブジェクトを連想配列(オブジェクト配列)に詰め替えたい

質問を見ていただきありがとうございます。

beforeのようなネストされたオブジェクトを

before.js

var obj = { name:"食べ物", taste:"不明", ch :{ name:"果物", taste:"たぶん甘い", ch :{ name:"みかん", taste:"酸っぱい", ch :{} } } }

afterのような配列の形にしたいです。

after.js

var obj = [ {name:"食べ物",taste:"不明"}, {name:"果物",taste:"たぶん甘い"}, {name:"みかん",taste:"酸っぱい"} ];

自分で考えたのがこれなのですが、正直イケてないように思います。

kore.js

var a = [];//返却値 var c = {};//一時保存用変数 //関数を実行 test(obj); //ネストを詰めかえる関数 function test(args){ c = {}; c.name = args.name; c.taste = args.taste; a.push(c); console.log(a); //ネストがあるか if('ch' in args){ test(args.ch); }else{ //最後の要素を削除 a.pop(); return a; }

新しい書き方(アロー関数など)は実行できない環境で使いたいのですが、アドバイスいただけると嬉しいです。
よろしくお願いいたします。

コメントを投稿

0 コメント