Group and count values in an array

后端 未结 4 466
感情败类
感情败类 2020-12-01 13:06

I have an array with objects, like the following.

b = {
  \"issues\": [{
    \"fields\": {
      \"status\": {
        \"id\": \"200\",
        \"name\": \"B         


        
4条回答
  •  爱一瞬间的悲伤
    2020-12-01 13:45

    Something like this should do the trick. Simply iterate over your data, keep 2 counters with the number of each type of issue, and create the data format you want in the end. Try it live on jsfiddle.

    var b = {
        "issues": [{
            "fields": {
                "status": {
                    "id": "200",
                    "name": "Backlog"
                }
            }
        }, {
            "fields": {
                "status": {
                    "id": "202",
                    "name": "close"
                }
            }
        }, {
            "fields": {
                "status": {
                    "id": "201",
                    "name": "close"
                }
            }
        }]
    };
    
    var data = [];
    for(var issue of b.issues){
        var entryFound = false;
        var tempObj = {
            name: issue.fields.status.name,
            count: 1
        };
    
        for(var item of data){
            if(item.name === tempObj.name){
            item.count++;
            entryFound = true;
            break;
          }
        }
    
        if(!entryFound){
            data.push(tempObj);
        }
    }
    console.log(data);
    

提交回复
热议问题