我在 JavaScript 中有员工信息的数组结构
var emplyeeinfo=[{
empNo: 12302,
empId: '30984',
empJobCategory: 'Designer',
},
{
empNo: 14785,
empId: '33420',
empJobCategory: 'Associate Manager',
},
{
empNo: 13710,
empId: '32603',
empJobCategory: 'Designer',
},
{
empNo: 13783,
empId: '32675',
empJobCategory: 'Designer',
},
{
empNo: 15069,
empId: '33619',
empJobCategory: 'Designer',
},
{
empNo: 14285,
empId: '33020',
empJobCategory: 'Validator',
},
{
empNo: 14476,
empId: '33185',
empJobCategory: 'Designer',
}];
并且想要根据以上信息构建数组
var employeejob=[{'Designer':[12302,13710,13783,15069,14476]},
{'Associate Manager':[14785]},
{'Validator':'[14285]}
];
我没有找到任何适当的机制来在 JavaScript 中构建此数组,并且希望从该数组中为 Highcharts 系列构建以下数组
var finalchart={series:[7,5,1,1],
category:['Total','Designer','Associate Manager','Validator']};
最佳答案
试试这个:
// Your new object
var obj = {};
// loop through the objects in array
employeeinfo.map(function(e){
// check if the object is already created or not
if(!obj[e.empJobCategory]){
// if not created then initialize it as an array
obj[e.empJobCategory] = [];
}
// push the new empNo in the created/present array
obj[e.empJobCategory].push(e.empNo);
});
// see the output
console.dir(obj);
<强> Working Fiddle
也可以使用Array.reduce()
来完成。
var obj = employeeinfo.reduce(function(p, c, i, a) {
if (!p[c.empJobCategory]) {
p[c.empJobCategory] = [];
}
p[c.empJobCategory].push(c.empNo);
return p;
}, {});
console.dir(obj);
<强> Working Fiddle
关于javascript - JavaScript 中的数组和对象处理用于获取 highchart json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36566115/