练习(1)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值