【发布时间】:2013-01-06 02:23:59
【问题描述】:
我有一个想要标准化的平面数据集。数据集是存在的,源是不可更改的,因此定义更好的数据结构不是一种选择。我已经设法“规范化”并重组数据,但我不确定当行数开始增长时它的效率如何?这就是我所拥有的,就像我说的那样,它只是在寻找更优雅的解决方案......
这是理想输出的样子
{ArticleID: "ABC123",
Status: "Scheduled",
Articles: {
ArticleID: "ABC123",
Region: US,
PubTypeID: "EO",
PubType: "Europe Order",
Created: "01/01/2013",
Scheduled: "03/02/2013"
},{
ArticleID: "ABC234",
Region: US,
PubTypeID: "EO",
PubType: "Europe Order",
Created: "01/01/2013",
Scheduled: "03/02/2013"
}
}
$(document).ready(function(){
var data = new Array(
{
ArticleID: "ABC123",
Region: 'US',
PubTypeID: "EO",
PubType: "Europe Order",
Created: "01/01/2013",
Scheduled: "03/02/2013"
},
{
ArticleID: "ABC123",
Region: 'RU',
PubTypeID: "EO",
PubType: "Europe Order",
Created: "01/01/2013",
Scheduled: "04/02/2013"
},
{
ArticleID: "ABC763",
Region: 'EO',
PubTypeID: "EO",
PubType: "Europe Order",
Created: "01/01/2013",
Scheduled: "03/02/2013"
},
{
ArticleID: "ABC498",
Region: 'JP',
PubTypeID: "EN",
PubType: "Europe Order",
Created: "01/01/2013",
Scheduled: "03/02/2013"
}
);
var Articles = new Array();
var pID = "";
var cID = "";
$.each(data, function(i, item) {
cID = item.ArticleID;
var entries = new Array();
if(cID != pID)
{
$.each(data, function(j, item2) {
var entry = new Object();
if(cID === item2.ArticleID)
{
entry.ArticlID = item2.ArticleID;
entry.Region = item2.Region;
entry.PubTypeID = item2.PubTypeID
entries.push(entry);
}
});
Articles.push({ArtilceID: cID, Entries: entries})
pID = cID
}
});
alert(Articles.length);
alert(Articles[0].Entries.length);
});
【问题讨论】:
-
在您确切告诉我们您需要如何访问/处理这些数据之前,我们无能为力。一个人优雅的“zomg 这是完美的”是另一个人的“一堆废话”
-
@MarcB 在这种情况下,我们谈论的是 O(n^2) 解决方案,所以我认为可以公平地说 OP 肯定可以做得更好,特别是对于大型数据集。跨度>
-
您能详细说明一下吗?什么是 O(n^2) 和 OP?
标签: javascript arrays sorting normalize