javascript 对后台返回的数据进行分类

模拟后台返回的数据为:

var arr = [
    {personName:"张三",id:1,age:12,gender:"male"},
    {personName:"张三",id:1,age:12,gender:"male"},
    {personName:"张三",id:1,age:12,gender:"male"},
    {personName:"李四",id:1,age:12,gender:"male"},
    {personName:"李四",id:1,age:12,gender:"male"},
    {personName:"李四",id:1,age:12,gender:"male"},
    {personName:"王五",id:1,age:12,gender:"male"},
    {personName:"王五",id:1,age:12,gender:"male"},
    {personName:"王五",id:1,age:12,gender:"male"}
]

对数据处理的方法为:(对personName来进行分类)

var nList = [];
for (var i = 0; i < arr.length; i++) {
    if (nList.length == 0) {
        nList.push({
            personName: arr[i].personName,
            data: [arr[i]]
        })
    } else {
        var index = nList.findIndex(item => item.personName == arr[i].personName);
        if (index >= 0) {
            nList[index].data.push(arr[i])
        } else {
            nList.push({
                personName: arr[i].personName,
                data: [arr[i]]
            })
        }
    }
}

对数据处理后的结构为:

[
    {
        "personName":"张三",
        "data":[
            {
                "personName":"张三",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"张三",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"张三",
                "id":1,
                "age":12,
                "gender":"male"
            }
        ]
    },
    {
        "personName":"李四",
        "data":[
            {
                "personName":"李四",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"李四",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"李四",
                "id":1,
                "age":12,
                "gender":"male"
            }
        ]
    },
    {
        "personName":"王五",
        "data":[
            {
                "personName":"王五",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"王五",
                "id":1,
                "age":12,
                "gender":"male"
            },
            {
                "personName":"王五",
                "id":1,
                "age":12,
                "gender":"male"
            }
        ]
    }
]

原文地址:https://www.cnblogs.com/wjs0509/p/11177513.html

时间: 2024-10-13 11:07:37

javascript 对后台返回的数据进行分类的相关文章

application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型

application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype  后台返回的数据响应的格式类型 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然.那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 其实form表单在你不写encty

根据后台返回的数据写一个分页,通用

// pageIndex ------> 当前页数,也就是页码了 const pageIndex = 1; // pageSize ------> 这是自定义每页需要展示的条数 const pageSize = 20; // roundfirmList ------> 这是获取后台返回的总的数据 var roundfirmList = res.data.body; // tpages ------> 这是获取后台返回的总页数,tCount const tpages = res.da

ionic后台返回的数据是html模板的时候,解析html文件的方法:

1.后台返回来的数据格式是: { "state":"100", "data":[ {"Content": "\u003c!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\u003e\

springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码

本人刚开始接触springmvc,项目搭建参照https://my.oschina.net/gaussik/blog/385697.在用IDEA写登录注册的时候,想通过ajax方式提交数据到后台,然后遇到如题所述的乱码问题,然后度娘了好多,终于解决了.废话不多说,直接上代码. 首先是登录页面login.jsp 1 <%-- 2 Created by IntelliJ IDEA. 3 User: PENG027 4 Date: 2016/11/11 5 Time: 15:48 6 To chang

laravel后台返回ajax数据

后台模式: 1 $array = array('msg'=>'添加失败!','status'=>'false'); 2 return json_encode($array); 前台显示: 1 $.ajax({ 2 url: "{{url('ucenter/saveTrain')}}", 3 type: "post", 4 dataType: "json", 5 data: {"content": content,&

iOS 下载图片 -当后台返回的数据是文件流而不是图片url

NSString *urlStr = [NSString stringWithFormat:@"%@uploadFileRest/downFile",[AFAppDotNetAPIClient getUrl]]; NSURL *url = [NSURL URLWithString:urlStr]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; request.HTTPMethod = @

后台返回数据为map集合,前端js处理方法

当后台返回的数据不是json而是map集合的时候,前端js中处理就将其看作是一个数组,例如后台返回的代码入下: Map<String, String> result = new HashMap<String, String>(); map.put("code", "200"); map.put("title", result.get("title")); map.put("content&qu

javascript学习-创建json对象数据,遍历

之前我已经有讲过后台返回json数据到前台,并在前台遍历json数据. 这里讲下直接在JS里创建JSON数据,然后遍历使用~ 创建代码例如以下:(创建的是JSON对象) var YearSelect = {}; var Year = 2014; var DateOption; for (var i = Year; i < Year + 12; i++) { DateOption = {'Year':i, 'Month':i-Year+1}; // alert(DateOption.Year) Y

如何在Crystal Portlet中正确返回JSON数据给AJAX请求?

当Crystal Portlet中需要采用Ajax请求,并让后台返回Json数据时,如何才能正确.方便的返回Json数据呢? 以下两种方法均可: 方法一:Ajax请求时,采用RenderURL,对应Portlet类中采用ajax(data)方法返回Java对象即可: 方法二:Ajax请求时,采用ResourceURL,对应Portlet类中采用ajax(data,response)方法将Java对象直接输出到Response流中:(推荐使用此方法) 分步指南 方法一: Ajax请求时,url采用