我託管一個web api服務,該服務返回過去12個月中我的模型「myModel」的快照。我在客戶端收到的json數組是一個簡單的12個「myMydel」對象數組。從模型陣列樞軸json數據
如果基於myModel具有屬性「foo」的和「bar」,是否有在javascript一種有效的方式以樞轉所述陣列,以產生特性的陣列的集合中,例如:
我想變換
history{
myModel[]
myModel[0]
foo: 1
bar: 2
Key: 1
myModel[1]
foo: 3
bar: 4
Key: 1
}
爲
history{
"1"{ //key
foo[]
foo[0]: 1
foo[1]: 3
bar[]
bar[0]: 2
bar[1]: 4
}
}
我願意imple如果這樣做會更有效率的話,可以在服務器端編程。我的api服務是一個.NET 4.5 Web Api。
再次。我的問題是,是否有超高效的方式來實現這些結果在JavaScript?如果沒有,是否有一個在C#中?有人可以提供一些簡單的示例代碼讓我去嗎?
非常感謝幫助。謝謝!
編輯:工作代碼
即使我否決了這一點,我想我會提供實現這個JavaScript的工作示例。它也很快。請注意,每條歷史記錄都必須有一個Key來按組來記錄。
_pivot = function(history) {
var i, pivoted, prop, rec;
pivoted = {};
if (history !== null) {
i = 0;
while (i < history.length) {
rec = history[i];
pivoted[rec.Key] = pivoted[rec.Key] || {};
for (prop in rec) {
pivoted[rec.Key][prop] = pivoted[rec.Key][prop] || [];
if (!pivoted[rec.Key][prop].date) {
pivoted[rec.Key][prop].push({
value: rec[prop]
});
}
}
i++;
}
return pivoted;
}
return null;
};