gpt4 book ai didi

javascript - 创建包含原始对象元素的新对象

转载 作者:行者123 更新时间:2023-12-03 10:10:44 24 4
gpt4 key购买 nike

我有一个对象,其数据格式类似于以下内容...

var origData = {data: [
['Header1', 'Header2', 'Header3'],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]
]};

我想做的是重新格式化它,使数据的结构像这样......

newData = {
{'Header1': 0, 'Header2': 1, 'Header3': 2},
{'Header1': 3, 'Header2': 4, 'Header3': 5},
{'Header1': 6, 'Header2': 7, 'Header3': 8}
};

每次我尝试编写一个可能的解决方案时,我都会迷失在嵌套的 for 循环中。我有一种感觉,我把这件事过于复杂化了。

header 数组为origData.data[0]

可以使用以下方式检索数据数组:

dataArrays = [];

for (var i = 1; i < origData.data.length; i++) {
dataArrays.push(origData.data[i]);
}

此时,我开始感到困惑。基本上,我需要在 for 循环中构造一个新对象,其中包含 header 数组元素作为键,以及相应的数据数组元素作为值。

任何帮助将不胜感激。谢谢!

最佳答案

结果应该是对象数组而不是对象的对象:

newData = [
{'Header1': 0, 'Header2': 1, 'Header3': 2},
{'Header1': 3, 'Header2': 4, 'Header3': 5},
{'Header1': 6, 'Header2': 7, 'Header3': 8}
];

以下是创建它的方法:

var origData = {data: [
['Header1', 'Header2', 'Header3'],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]
]};

var newData = [];

// get the headers
var headers = origData.data[0];

// loop through the original data arrays
for (var i = 1 ; i < origData.data.length; i++) {

// get the data array for this item
var data = origData.data[i];

// create an empty item
var item = {};

// combine headers with values into the item
for (var j = 0; j < headers.length; j++) {
item[headers[j]] = data[j];
}

// add the item to the array
newData.push(item);
}

// Show result in StackOverflow snippet
document.write(JSON.stringify(newData));

关于javascript - 创建包含原始对象元素的新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121665/

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