我有(n) JSON编码的技能集对象,我需要能够获得有意义的汇总信息,以便按组、类别、资源和能力分组显示。考虑到我已经必须解析DOM以剥离数据,那么处理该数据以减少客户端影响的最佳方法是什么?
注意:数据集不超过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的提取变换负载:
informatica Powercenter Capability Weighting = 5
IBM Datastage Capability Weighting = 15
Microsoft SSIS Capability Weighting = 5
Ab Initio Capability权重= 15
或:-
对于能力权重为n = X + y + z的资源X
Technologies: Extract Transform Load Capability Weighting = x
技术:商业智能能力权重= y
技术:数据仓库能力权重= z
如果您想在客户端这样做,我将只使用简单的哈希表(字典)来计算摘要。
您可以遍历N个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.