javascript - JavaScript 中的数组和对象处理用于获取 highchart json 数据

标签 javascript arrays angularjs json highcharts

我在 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/

相关文章:

javascript - 如何验证数字是否为整数

c - 在 while 循环内使用 scanf 读取数组时出现意外行为

java - 在两个主类之间传递 String 变量,将其传递到 String Array

javascript - ngAnimate CSS 动画不适用于 ng-show 和 ng-hide

javascript - 将数据值存储在 JSON 文件中

javascript - 在新进程中生成 Grunt 任务

javascript - 从整数数组创建单链表

javascript - Angular 不解析 IE9 和 10 中 style 属性中的模板 {{value}}

javascript - 元素在点 (1254, 21) 处不可单击。其他元素将收到点击

javascript - 使用 Microsoft 的 pwa-builder : Uncaught (in promise) TypeError: Request failed