前提・実現したいこと
質問させてください。
下のような配列があるのですが、
javascript
1var arr = ['foo_apple', 'bar_apple', 'bar_orange', 'bar_melon', 'foo_orange'];
アンダースコアの左側の部分と右側の部分に分けて、左側の文字列が同じものを、オブジェクトのキーとしてグループ分けしたいと思っております。上の例でしたら下のような形を想定しています。
javascript
1var obj = { 2 foo: [ 3 'apple', 4 'orange' 5 ], 6 bar: [ 7 'apple', 8 'orange', 9 'melon' 10 ] 11}
試したこと
下記のプログラムを作ってみまして、左側の文字をobjのキー名と比較して、プロパティがなければ新たにプロパティを作成し、あれば同じプロパティに追加するという形にしたかったのですが、どのような条件式にすればよいか分からず困っております。
javascript
1var arr = ['foo_apple', 'bar_apple', 'bar_orange', 'bar_melon', 'foo_orange']; 2var obj = {}; // グループ分けした文字列を入れる用 3var element = []; // 右側のテキストを入れる用 4 5for (var i = 0, len = arr.length; i < len; i++) { 6 // アンダースコアを境に文字列を分割する 7 var str = arr[i].split('_'); 8 // もし左側の文字が〇〇と等しければ 9 if (str[0] == 〇〇) { 10 // 配列に右側の文字列を追加する 11 element.push(str[1]); 12 // オブジェクトに追加 13 obj[str[0]] = element; 14 } 15}
どなたか良い案をご教授いただけますと助かります。低レベルな質問ですみません。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/01 13:17