JavaScriptでJSON形式のデータを、特定の値ごとの横持ちの2次元配列に変更する方法についてです。
今回は、categoryの値ごとにvalueを集めたいと思います。
var subjects = [ {'category':'math','value':'100','name':'AAA'}, {'category':'math','value':'50','name':'BBB'}, {'category':'math','value':'70','name':'CCC'}, {'category':'english','value':'96','name':'AAA'}, {'category':'english','value':'80','name':'BBB'}, {'category':'history','value':'70','name':'AAA'}, {'category':'history','value':'99','name':'BBB'}, ]; var subjectMaster = [ {'category':'math','no':'1'}, {'category':'english','no':'2'}, {'category':'history','no':'3'}, ]; var sub = {}; var result = []; subjects.map(function (i,j) { var category=i["category"]; if(typeof sub[category]=="undefined") sub[category]=[]; sub[category].push(i.value); }); subjectMaster.forEach(function(v){ console.log(v); result.push(sub[v.category]); }); console.log(result);
実行結果は次のようになります。