首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过字段JQuery/JS压缩Json对象

通过字段JQuery/JS压缩Json对象
EN

Stack Overflow用户
提问于 2012-04-20 05:24:31
回答 2查看 279关注 0票数 0

我有以下JSON:

代码语言:javascript
复制
[{"state":"MN","value":10},{"state":"MN","value":10},{"state":"MN","value":10},{"state":"NY","value":8},{"state":"NY","value":8},{"state":"NY","value":8}]

在JQuery/JS或任何其他HTML兼容语言中,有没有一个命令可以让我将上面的JSON转换为以下内容:

代码语言:javascript
复制
[{"state":"MN","value":[10,10,10]},{"state":"NY","value":[8,8,8]}]

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2012-04-20 05:37:18

下面的循环将为您提供所需的输出,

代码语言:javascript
复制
var data = [{"state":"MN","value":10},{"state":"MN","value":10},{"state":"MN","value":10},{"state":"NY","value":8},{"state":"NY","value":8},{"state":"NY","value":8}];

var tmp = {};
var t;
$.each (data, function (i, val) {
   if (tmp.hasOwnProperty(val.state)) {
      t = tmp[val.state];
      t.push(val.value);
   } else {
      tmp[val.state] = [val.value];
   }   
});

var output = [];
for (i in tmp) {
    output.push({'state': i, 'value': tmp[i]});   
}

证明:

票数 3
EN

Stack Overflow用户

发布于 2012-04-20 05:38:51

您可以使用:

代码语言:javascript
复制
var input=[{"state":"MN","value":10},{"state":"MN","value":10},{"state":"MN","value":10},{"state":"NY","value":8},{"state":"NY","value":8},{"state":"NY","value":8}]

var tmp={}, output=[];
while(o=input.pop()) (tmp[o.state] || (tmp[o.state]=[])).push(o.value); //you could even stop here if it is enough for you
for(k in tmp) output.push({state:k,value:tmp[k]});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10237011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档