2011-12-01 20 views
0

我有(n)JSON編碼的技能組對象,我需要能夠派生出有意義的摘要信息以供顯示,按組,類別,資源分組能力。考慮到我已經必須解析DOM去除數據,處理這些數據以減少客戶端影響的最佳方式是什麼?用於Javascript(JQuery)將數組處理爲摘要數據的最佳算法

N.B.數據集不超過5000條記錄。

例如

@{"resource" : "","group" : "Technologies","category" : "Extract Transform Load","skill" : "Informatica Powercenter","capabilityWeighting" : 1} 
@{"resource" : "","group" : "Technologies","category" : "Extract Transform Load","skill" : "IBM Datastage","capabilityWeighting" : 0} 
@{"resource" : "","group" : "Technologies","category" : "Extract Transform Load","skill" : "Microsoft SSIS","capabilityWeighting" : 4} 
@{"resource" : "","group" : "Technologies","category" : "Extract Transform Load","skill" : "Ab Initio","capabilityWeighting" : 15} 
@{"resource" : "","group" : "Technologies","category" : "Extract Transform Load","skill" : "Informatica Powercenter","capabilityWeighting" : 4} 
@{"resource" : "","group" : "Technologies","category" : "Extract Transform Load","skill" : "IBM Datastage","capabilityWeighting" : 15} 
@{"resource" : "","group" : "Technologies","category" : "Extract Transform Load","skill" : "Microsoft SSIS","capabilityWeighting" : 1} 

總結於: -

對於提取轉換負載具有40能力加權:

  • Infomatica的PowerCenter能力加權= 5

  • IBM的DataStage能力加權= 15

  • 微型軟SSIS能力加權= 5

  • 從頭算能力加權= 15

或: -

對於資源X在n = X + Y + Z的能力加權

  • 技術:提取變換負載能力權重= x

  • 種技術:商業智能能力權重= Y

  • 技術:數據倉庫性能權重= Z

回答

0

如果你想這樣做,在客戶端,我只想用簡單的哈希表(字典),以計算摘要。

0

,你可以通過你的ňJSON編碼的對象,保持流水賬摘要對象循環:

var data = [ 
    {"resource": "", "group": "Technologies", "category": "Extract Transform Load", "skill": "Informatica Powercenter", "capabilityWeighting": 1}, 
    {"resource": "", "group": "Technologies", "category": "Extract Transform Load", "skill": "IBM Datastage", "capabilityWeighting": 0}, 
    {"resource": "", "group": "Technologies", "category": "Extract Transform Load", "skill": "Microsoft SSIS", "capabilityWeighting": 4}, 
    {"resource": "", "group": "Technologies", "category": "Extract Transform Load", "skill": "Ab Initio", "capabilityWeighting": 15}, 
    {"resource": "", "group": "Technologies", "category": "Extract Transform Load", "skill": "Informatica Powercenter", "capabilityWeighting": 4}, 
    {"resource": "", "group": "Technologies", "category": "Extract Transform Load", "skill": "IBM Datastage", "capabilityWeighting": 15}, 
    {"resource": "", "group": "Technologies", "category": "Extract Transform Load", "skill": "Microsoft SSIS", "capabilityWeighting": 1} 
]; 

var summary = {}; 

for (var i = 0, c = data.length; i < c; i += 1) { 
    var row = data[i]; 
    if (!summary.hasOwnProperty(row.category)) summary[row.category] = { skills: {}, total: 0 }; 
    if (!summary[row.category].skills.hasOwnProperty(row.skill)) summary[row.category].skills[row.skill] = 0; 
    summary[row.category].skills[row.skill] += row.capabilityWeighting; 
    summary[row.category].total += row.capabilityWeighting; 
} 

// "summary" now has all the data summarized as you need. 
// You just need to loop through it and output using whatever phrasing you want. 
相關問題