我托管了一个 web api 服务,它返回我的模型“myModel”过去 12 个月的快照。我在客户端收到的 json 数组是一个包含 12 个“myMydel”对象的简单数组。
如果 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
}
}
如果这样更有效,我愿意在服务器端实施。我的 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;
};