重新组合 json 数组
Regroup json array
我有这个json
[
{
"id": "03868185",
"month_10": 6,
},
{
"id": "03870584",
"month_6": 2,
},
{
"id": "03870584",
"month_7": 5,
},
{
"id": "51295",
"month_1": 1,
},
{
"id": "51295",
"month_10": 1,
},
{
"id": "55468",
"month_11": 1,
}
]
我想检索这种格式:
[
{
"id": "03868185",
"month_10": 6,
},
{
"id": "03870584",
"month_6": 2,
"month_7": 5,
},
{
"id": "51295",
"month_1": 1,
"month_10": 1,
},
{
"id": "55468",
"month_11": 1,
}
]
如何使用javascript处理它?
试试这样。
var array = [
{
"id": "03868185",
"month_10": 6,
},
{
"id": "03870584",
"month_6": 2,
},
{
"id": "03870584",
"month_7": 5,
},
{
"id": "51295",
"month_1": 1,
},
{
"id": "51295",
"month_10": 1,
},
{
"id": "55468",
"month_11": 1,
}
]
var resultArray = array.filter(function(item) {
var ref = this[item.id];
if(!ref) {
return (this[item.id] = item);
}
else
{
var keys = Object.keys(item);
ref[keys[1]] = item[keys[1]];
}
}, {});
console.log(resultArray);
普兰克 : http://plnkr.co/edit/7onuPTte0Akd4ulbN8Hz?p=preview
您可以使用
一些Array#forEach
和哈希表作为参考。
var data = [{ "id": "03868185", "month_10": 6, }, { "id": "03870584", "month_6": 2, }, { "id": "03870584", "month_7": 5, }, { "id": "51295", "month_1": 1, }, { "id": "51295", "month_10": 1, }, { "id": "55468", "month_11": 1, }],
grouped = [];
data.forEach(function (a) {
if (!this[a.id]) {
this[a.id] = {};
grouped.push(this[a.id]);
}
Object.keys(a).forEach(function (k) {
this[a.id][k] = a[k];
}, this);
}, Object.create(null));
console.log(grouped);
相关文章:
- 需要帮助设置json数组
- 如何使用 node.js 比较两个 json 数组
- 根据id将json数组组合为一个json数组
- 如何创建JSON数组
- 如何将package.json数组传递给grunt.js
- 访问json数组中的对象
- JSON数组数据返回Undefined
- 如何向JSON数组动态添加属性
- 如何从json数组中获取特定值
- 从多维嵌套json数组创建下拉列表
- 在ListView中添加JSON数组中存储的图像-ReactNative
- jquery在json数组中循环
- 将 JSON 数组解析为 JavaScript 数组
- 如何在php中读取没有任何键的JSON数组
- 如何在Jquery中迭代JSON数组
- 如何在cycle js中从JSON数组创建组件
- 如何使用jquery返回php-json数组对象
- JSON数组转换为JS对象数组
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- 使用Underscore.js修改json数组中所选元素的更有效方法