gpt4 book ai didi

javascript - 旋转 JavaScript 数组

转载 作者:行者123 更新时间:2023-12-01 00:38:49 24 4
gpt4 key购买 nike

我有遵循以下格式的源数据,其中我有每个类别的值的集合

var data = [
{'name': 'Test 1',
'values': {
'50':0,
'51':10,
'52':0,
'53':10,
'54':60,
'55':999
}},
{'name': 'Test 2',
'values': {
'50':33,
'51':3,
'52':333,
'53':3,
'54':3,
'55':3333
}},
{'name': 'Test 3',
'values': {
'50':55,
'51':66,
'52':77,
'53':88,
'54':99,
'55':100
}}];

我需要对其进行旋转,为每个值单独创建一个数组。所以我的结果集是

var result = [
{'value':50, 'Test 1':0, 'Test 2':33, 'Test 3': 55},
{'value':51, 'Test 1':10, 'Test 2':3, 'Test 3': 66},
{'value':52, 'Test 1':0, 'Test 2':333, 'Test 3': 77},
{'value':53, 'Test 1':10, 'Test 2':3, 'Test 3': 88},
{'value':54, 'Test 1':60, 'Test 2':3, 'Test 3': 99},
{'value':55, 'Test 1':999, 'Test 2':3333, 'Test 3': 100}
]

我看不到如何通过循环 data 数组来创建新的数组

最佳答案

您可以使用一个对象来收集相同的键,并从该对象中获取值作为结果集。

var data = [{ name: 'Test 1', values: { 50: 0, 51: 10, 52: 0, 53: 10, 54: 60, 55: 999 } }, { name: 'Test 2', values: { 50: 33, 51: 3, 52: 333, 53: 3, 54: 3, 55: 3333 } }, { name: 'Test 3', values: { 50: 55, 51: 66, 52: 77, 53: 88, 54: 99, 55: 100 } }]
result = Object.values(data.reduce((r, { name, values }) => {
Object.entries(values).forEach(([k, v]) => {
r[k] = r[k] || { value: +k };
r[k][name] = v;
});
return r;
}, {}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 旋转 JavaScript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57871105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com