前提・実現したいこと
質問させてください。
下のようなオブジェクトを作成しました。
javascript
1var obj = { 2 foo: [ 3 'apple', 4 'orange' 5 ], 6 bar: [ 7 'apple', 8 'orange', 9 'melon' 10 ] 11}
こちらを下のようにscssの形に加工して(ドットやスペース、改行、中括弧、インデントなどを付けて)出力させたいと思っております。
scss
1.foo { 2 &-apple { 3 4 } 5 6 &-orange { 7 8 } 9} 10 11.bar { 12 &-banana { 13 14 } 15 16 &-tomato { 17 18 } 19 20 &-melon { 21 22 } 23} 24
試したこと
下記のプログラムを作成し、こちらでもある程度想定した形で出力できたのですが、改行とインデント(space)をいくつもつなげないといけないので、コードが煩雑で読みにくくなってしまいます。これをもう少し効率良くシンプルに書く方法がありましたら、ご教授いただけますと助かります。。
javascript
1var space = " "; // インデント 2var output = ''; // 完成したコードを入れる用 3 4for (var key in obj) { 5 var txt = `.${key} {\n`; 6 for (var value of obj[key]) { 7 txt += `\n${space}&-${value} {\n${space.repeat(2)}\n${space}}\n`; 8 } 9 txt += `}\n`; 10 output += txt; 11} 12 13console.log(output);
拙い質問ですみません。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/02 03:18
2018/07/02 03:41