【问题标题】:Group a JSON object with jQuery使用 jQuery 对 JSON 对象进行分组
【发布时间】:2014-10-24 13:25:09
【问题描述】:

如果这是一个重复的问题,我很抱歉。但是其他类似的问题还没有帮助我。我有一个这样的 JSON 文件:

[
      {
        age: 25,
        id: 1,
        name: "Iqbal Hussain",
        receivedOn: "2014-10-21",
        resource_uri: "/api/v1/student/1/",
        sex: "M",
        ugPercentage: 79
      },{
        age: 26,
        id: 2,
        name: "Anis Sarkar",
        receivedOn: "2014-10-20",
        resource_uri: "/api/v1/student/2/",
        sex: "M",
        ugPercentage: 67
      },{
        age: 25,
        id: 3,
        name: "Abumutalib Sheikh",
        receivedOn: "2014-10-20",
        resource_uri: "/api/v1/student/3/",
        sex: "M",
        ugPercentage: 59
      },{
        age: 24,
        id: 4,
        name: "Abhijeet Paul",
        receivedOn: "2014-10-21",
        resource_uri: "/api/v1/student/4/",
        sex: "M",
        ugPercentage: 62  
      }
    ]

我希望它像这样转换:

[
  {
    receivedOn: "2014-10-21",
    total: 2
  },{
    receivedOn: "2014-10-20",
    total: 2  
  }
]

其中 total 是具有相同 receivedOn 值的对象数

【问题讨论】:

  • 那么,到目前为止,我的朋友您尝试过什么?
  • @MikeAnte 他不是你的朋友,兄弟... ;)
  • total 来自哪里?
  • 来吧,你至少应该提供一些关于你想如何制作“total”的信息。
  • 喜欢这个? jsfiddle.net/bc8m036t :)

标签: javascript jquery json


【解决方案1】:

@dfsq 给出的答案正是我想要的。

var data = [{
    age: 25,
    id: 1,
    name: "Iqbal Hussain",
    receivedOn: "2014-10-21",
    resource_uri: "/api/v1/student/1/",
    sex: "M",
    ugPercentage: 79
}, {
    age: 26,
    id: 2,
    name: "Anis Sarkar",
    receivedOn: "2014-10-20",
    resource_uri: "/api/v1/student/2/",
    sex: "M",
    ugPercentage: 67
}, {
    age: 25,
    id: 3,
    name: "Abumutalib Sheikh",
    receivedOn: "2014-10-20",
    resource_uri: "/api/v1/student/3/",
    sex: "M",
    ugPercentage: 59
}, {
    age: 24,
    id: 4,
    name: "Abhijeet Paul",
    receivedOn: "2014-10-21",
    resource_uri: "/api/v1/student/4/",
    sex: "M",
    ugPercentage: 62
}];

var obj = {};
data.forEach(function(el) {
    if (!obj[el.receivedOn]) {
        obj[el.receivedOn] = 0;
    }
    obj[el.receivedOn] += 1;
});

var result = Object.keys(obj).map(function(key) {
    return {receivedOn: key, total: obj[key]};
});

alert(JSON.stringify(result));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2018-03-19
    • 2019-10-31
    • 1970-01-01
    相关资源
    最近更新 更多