zoukankan      html  css  js  c++  java
  • 数组数据处理--按某个key筛选数组,value相同的合并为一个数组

    有时候,某个请求返回的数据是很杂乱的,需要按照一些规则重新排列组合。

    例:这样的数据:

    var list=[
        {"companyId":1,"companyName":"公司一","name":"张春"},
        {"companyId":1,"companyName":"公司一","name":"王夏"},
        {"companyId":2,"companyName":"公司二","name":"李秋"},
        {"companyId":2,"companyName":"公司二","name":"赵冬"},
        {"companyId":3,"companyName":"公司三","name":"刘季"}                
    ]

    现在想按照公司来处理,把相同id的公司中的人员放在一个数组中,最后的结果是,有多少个公司,就返回多少个数组。

    可以这样操作:

    var list=[
        {"companyId":1,"companyName":"公司一","name":"张春"},
        {"companyId":1,"companyName":"公司一","name":"王夏"},
        {"companyId":2,"companyName":"公司二","name":"李秋"},
        {"companyId":2,"companyName":"公司二","name":"赵冬"},
        {"companyId":3,"companyName":"公司三","name":"刘季"}                
    ]            
    
    var listNew = [];
    
    list.forEach(function(el){
        for(var i=0;i<listNew.length;i++){
            if(listNew[i].companyId == el.companyId){
                listNew[i].people.push({
                    name: el.name
                });
                return;
            }
        }                    
        listNew.push({
            companyId: el.companyId,
            companyName: el.companyName,
            people: [{
                name: el.name                    
            }]
        });    
    });
                            
    console.log(listNew);

    结果为:

    这样的结果符合要求。

  • 相关阅读:
    css选择器学习(二)属性选择器
    css选择器学习(一)
    css引用优先级
    canvas制图学习
    cookie,localStorage,sessionStorage
    HTTP协议中get和post的区别
    台灯发展史
    Object类实现的方法
    react学习网站
    什么是接口测试,接口测试的目的,如何进行接口测试
  • 原文地址:https://www.cnblogs.com/hzhjxx/p/12851155.html
Copyright © 2011-2022 走看看