转换对象数组的结构
Transform structure of array of objects
我有类似-的数据
var data = [{"DefaultZone":[{"key":"stream0","value":100},
{"key":"stream1","value":50},
{"key":"stream2","value":10}
]},
{"Zone 1":[{"key":"stream0","value":120},
{"key":"stream1","value":55},
{"key":"stream2","value":15}
]}
]
并想像一样改造它
var data = [{"key": "stream0", "values":[{"x":"DefaultZone","y":100}, {"x":"Zone 1","y":120}]},
{"key": "stream1", "values":[{"x":"DefaultZone","y":50}, {"x":"Zone 1","y":55}]},
{"key": "stream2", "values":[{"x":"DefaultZone","y":10}, {"x":"Zone 1","y":15}]}
];
使用JavaScript(ES6(。如有任何帮助,我们将不胜感激。。
这是我想到的第一种方法:
var data = [{
"DefaultZone": [
{ "key": "stream0", "value": 100 },
{ "key": "stream1", "value": 50 },
{ "key": "stream2", "value": 10 }]
}, {
"Zone 1": [
{ "key": "stream0", "value": 120 },
{ "key": "stream1", "value": 55 },
{ "key": "stream2", "value": 15 }]
}];
let working = data.reduce((p, c) => {
let x = Object.keys(c)[0];
c[x].forEach(v => {
if (!p[v.key]) p[v.key] = [];
p[v.key].push({ x: x, y: v.value });
});
return p;
}, {});
let output = Object.keys(working).map(v => ({ key: v, values: working[v] }));
console.log(output);
进一步阅读:
- 阵列CCD_ 1方法
Object.keys()
方法- 阵列
.forEach()
方法 - 阵列
.map()
方法
虽然我喜欢nnnnnn的答案,但这里是另一个答案,只使用Object.keys((方法:
var data = [{
"DefaultZone": [{
"key": "stream0",
"value": 100
}, {
"key": "stream1",
"value": 50
}, {
"key": "stream2",
"value": 10
}]
}, {
"Zone 1": [{
"key": "stream0",
"value": 120
}, {
"key": "stream1",
"value": 55
}, {
"key": "stream2",
"value": 15
}]
}]
final = {}
data.forEach(function(x) {
Object.keys(x).forEach(function(y) {
x[y].forEach(function(z) {
if (!final[z['key']]) final[z['key']] = [];
final[z['key']].push({
'x': y,
'y': z['value']
})
})
})
})
answer = []
Object.keys(final).forEach(function(x) {
answer.push({
'key': x,
values: final[x]
})
})
console.log(answer)
相关文章:
- 如何在javascript中使用2个一维数组创建层次结构树
- 展平多个嵌套层次结构数组-d3.js
- $.when.apply 根据输入数组的长度返回具有不同结构的结果
- JavaScript-我可以用for循环中修改的属性将新结构推送到数组中吗
- 用Javascript从两个平面结构数组中格式化JSON
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- 以数组为数据结构的d3.js树布局
- 遍历JS对象/数组,如果找到匹配项,则更改值并返回原始对象/数组结构
- 在JavaScript性能方面模拟结构处理的C数组
- 如何合并数组以获取结构
- 如何将 JSON 数组反序列化为本机 .net 数据结构
- 如何从平面JavaScript数组创建分层HTML结构
- 设置对象数据结构数组属性
- JS:在一行代码中初始化并推送到多维数组?创建树结构
- 遍历此数组结构的最佳方法
- 正确的MongoDB集合结构,包括Meteor中的值数组(不带键)
- 创建JSON对象的层次结构数组
- JavaScript -结构数组
- N级层次结构数组Angular JS
- Javascript:将一个结构数组拆分为其元素数组