使用_.groupBy并且它可以工作,但是我希望使用带有下划线

时间:2017-04-04 06:22:58

标签: json underscore.js

我正在使用Underscore来通过EMPLOYER _.groupBy JSON对象。该雇主下有许多工作职责,每个职位有一个薪水。

因此,我想要汇总所有薪水的总额。

这是我所拥有的一个简短例子:

ctrlMain.regroupedReport2 = _.groupBy(ctrlMain.report2, function (obj) {
    return JSON.stringify(obj.empname);
});

原始数据的价值在这里:

每家公司都是这样的......现在,JSON中有更多数据,但为了清楚起见,我只展示了我需要的价值。

TTL SALARIES与EMPLOYER在同一行显示为RIGHT JUSTIFIED。

是的,这是一个自定义的Datatables.net表。

enter image description here

这就是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],12,... [n]

更新

以下是我尝试做的一个例子。 每个雇主都有1 - ' n'有工资的工作人数。 我想把SUM加入到salaryRollup' n'在每个集团下!

This is an example of what I'm attempting to accomplish. Rollup CHILD SALARIES to PARENT 'GROUP' row

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将出现在最右侧公司的图形中。

0 个答案:

没有答案