Javascript (JQuery)将数组处理为汇总数据的最优算法
Optimal algorithm for Javascript (JQuery) processing of array into summary data
我有(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.
相关文章:
- 序列化数据属性中对象的最可靠方法
- 最短路径算法js错误
- 计算数据点阵列与平均值的最大距离,并返回相关数据点
- 显示数据的最快方式
- 如何根据数值通过数据属性进行搜索并获得最接近的值
- 用于筛选无模式集合的最快数据结构
- React 在点击时渲染其他组件.ReactJS中的最优模式
- 高库存 - 更改超出数据最大值的输入范围
- 协助使用Javascript中的连接四的最小最大算法
- Node.js Express,路由器,最优参数作为扩展
- 从一系列网页中提取数据最简单的方法是什么?
- 我们如何写一个最优函数来得到给定数字的字母顺序?
- Javascript (JQuery)将数组处理为汇总数据的最优算法
- 使用jQuery改变元素顺序的最优方法
- 在图表框架中连接数据点的算法
- 如何设置输入的数据最小值和设置消息,如果值小于最小值
- 在Javascript中获取查询参数的最优方法
- Javascript -最优路径(角度)
- jQuery“curtain"函数-最优解
- 最优的方式流股票价格从c++服务器使用tcp到websockets