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追加しました。

参考

developer.mozilla.org