Javascriptで配列内の要素をキーに分割するmemo
レスポンスを自分で変更できないので、javascript側でレスポンスデータをブレイクしたmemo.
データ
- before
[ { id:1 venue:AAAA name: - date: - staff: - }, { id:2 venue:AAAA name: - date: - staff: - }, { id:3 venue:CCCC name: - date: - staff: - } ]
今回はvenue単位の連想配列にしたい次第。
* after
[ { AAAA: [ { id:1 venue:AAAA name: - date: - staff: - }, { id:2 venue:AAAA name: - date: - staff: - } ], CCCC: [ { id:3 venue:CCCC name: - date: - staff: - } ]
break
var splitData = {}; for (var i = 0; i < data.length; i++) { if (splitData.hasOwnProperty(data[i]['venue'])) { splitData[data[i]['venue']].push(data[i]); } else { splitData[data[i]['venue']] = new Array(data[i]); } }
hasOwnPropertyでキーの値の存在確認しながら作るor追加しました。