我正在使用Underscore来通过EMPLOYER _.groupBy JSON对象。该雇主下有许多工作职责,每个职位有一个薪水。
因此,我想要汇总所有薪水的总额。
这是我所拥有的一个简短例子:
ctrlMain.regroupedReport2 = _.groupBy(ctrlMain.report2, function (obj) {
return JSON.stringify(obj.empname);
});
原始数据的价值在这里:
每家公司都是这样的......现在,JSON中有更多数据,但为了清楚起见,我只展示了我需要的价值。
TTL SALARIES与EMPLOYER在同一行显示为RIGHT JUSTIFIED。
是的,这是一个自定义的Datatables.net表。
这就是UNDERSCORE创造的......
"AVOCENT HUNTSVILLE CORP": [{
pwsalary: "$83,179.00"
salary: "$83,179.00"
},{
pwsalary: "$111,446.00"
salary: "$129,064.00"
},{
pwsalary: "$111,446.00"
salary: "$129,064.00"
},{
pwsalary: "$122,283.00"
salary: "$134,482.50"
}]
问题:
将公司作为UPPER OBJECT;如何通过"公司名称"访问每个公司的INNER ARRAY。或通过INDEX; [0],1,2,... [n]
更新
以下是我尝试做的一个例子。 每个雇主都有1 - ' n'有工资的工作人数。 我想把SUM加入到salaryRollup' n'在每个集团下!
HTH
更新:
JAVASCRIPT:
var a = {
"ACME": [{
"salary": "100000.00"
}, {
"salary": "52500.00"
}],
"JOHNSON CONTROLS": [{
"salary": "42525.00"
}, {
"salary": "72500.00"
}, {
"salary": "62500.00"
}, {
"salary": "82500.00"
}]
};
var ttl = [];
var col1_sum = _.reduce(a,
function(memo, obj) {
console.log("MEMO: ", obj)
for (var e = 0; e < obj.length; e++) {
for (var i = 0; i < obj.length; i++) {
ttl[i] = memo + parseFloat(obj[i].salary);
}
return ttl[e];
}
}, 0);
console.log("TOTALS: ", ttl);
$("#sum").html(col1_sum)
HTML:
<div id="sum"></div>
我得到的答案是:
142525
我需要的是所有ACME SALARIES和所有JOHNSON CONTROLS SALARIES的总和。
那就是它。 FINAL TOTAL将出现在最右侧公司的图形中。