var array = [ {"前端部门":"小明"}, {"后端部门":"小张"}, {"人事部门":"小李"}, {"前端部门":"小红"}, {"前端部门":"小刘"}, {"后端部门":"小杨"}, {"测试部门":"小乐"}, {"设计部门":"小王"}, {"测试部门":"小胡"}, ] // 使用for格式化data为 // [ // {'部门': 'xxx', arr: ['xxx', 'xxx']} // ]
思路
先将几大部门筛选出来,然后通过循环将array数组对应部门的值取出来
代码如下
let arr = [], // 放置部门的数组
result = []; // 最终结果数组
for(let i = 0; i < array.length;i++){
for(key in array[i]){
if(arr.indexOf(key) == -1){ // 判断arr中是否有这个部门,没有就添加,有的话就放到对应部门的arr内
arr.push(key)
result.push({
'部门': key,
arr: [array[i][key]]
})
}else {
for(let j = 0; j < result.length; j++){
for(key1 in result[j]){
result[j][key1] == key && result[j]['arr'].push(array[i][key])
}
}
}
}
}
欢迎诸位大神提供更好答案,over