javascript - 按字段压缩 Json 对象 JQuery/JS

标签 javascript jquery html json

我有以下 JSON:

[{"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 转换为以下内容:

[{"state":"MN","value":[10,10,10]},{"state":"NY","value":[8,8,8]}]

谢谢!

最佳答案

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

DEMO

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]});   
}

证明:

enter image description here

关于javascript - 按字段压缩 Json 对象 JQuery/JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10237011/

相关文章:

javascript - 如何使用 jQuery 定位 img 元素的 src 属性?

javascript - 防止用户按 "Enter"激活引导按钮

html - 如何在最后可能的空白处换行 HTML 列表

javascript - angularjs如果在输入字段内单击则显示div,如果在输入字段外单击则隐藏

.append() 之后的 JQuery Lazyload 图像

javascript - 通过href获取<a></a>标签之间的值

javascript - React 受控组件与不受控组件的总体定义

javascript - 如何在 prime ui 或 jquery datatable "columns"选项的 headerText 中包含 HTML 代码?

jquery - 随机化每个循环

javascript - ajax 在 Laravel 中无法工作,显示找不到页面