gpt4 book ai didi

javascript - 将多深度数组对象数组转换为对象数组

转载 作者:行者123 更新时间:2023-11-30 07:33:49 25 4
gpt4 key购买 nike

我在将类似数组的对象数组转换为对象数组时遇到了一些麻烦。我正在使用 reduce 方法,它正确地将数组数据转换为第一组数组的对象,但第二次通过时,它正确地将数据设置为键:值对,但没有将它放在我要创建的对象中想要它在里面。

这是数组和函数:

var array = [
[
['Name', 'Arusha'], ['Species', 'Arabica'], ['Region', 'Mount Meru in Tanzania, and Papua New Guinea'], ['Comments', 'Typica variety or a French Mission']
],
[
['Name', 'Catimor'], ['Species', 'Interspecific hybrid'], ['Region', 'Latin America'], ['Comments', 'This is cross between Timor coffee and Caturra coffee. It was created in Portugal in 1959']
]
];

function convertArrayToObject(array) {
var arr = [];

array.reduce(function(result, currentArray) {
for (var j = 0, i = 0; i < array[0].length; i++) {
result[currentArray[i][0]] = currentArray[i][1];
}
arr.push(result);
return arr;
}, {});
return arr;
}

我的预期输出应该是这样的:

[
{ Name: 'Arusha', Species: 'Arabica', Region: 'Mount Meru in Tanzania, and Papua New Guinea', Comments: 'Typica variety or a French Mission' },
{ Name: 'Catimor', Species: 'Interspecific hybrid', Region: 'Latin America', Comments: 'This is cross between Timor coffee and Caturra coffee. It was created in Portugal in 1959' }
]

这是我目前返回的内容:

 [ { Name: 'Arusha', Species: 'Arabica', Region: 'Mount Meru in Tanzania, and Papua New Guinea', Comments: 'Typica variety or a French Mission' },
[Circular],
Name: 'Catimor',
Species: 'Interspecific hybrid',
Region: 'Latin America',
Comments: 'This is cross between Timor coffee and Caturra coffee. It was created in Portugal in 1959' ]

如有任何帮助,我们将不胜感激!

最佳答案

你可以使用 Array#map并为外部数组的每个元素返回一个新对象。在内部,您可以迭代所有项目并构建新属性。

var array = [[['Name', 'Arusha'], ['Species', 'Arabica'], ['Region', 'Mount Meru in Tanzania, and Papua New Guinea'], ['Comments', 'Typica variety or a French Mission']], [['Name', 'Catimor'], ['Species', 'Interspecific hybrid'], ['Region', 'Latin America'], ['Comments', 'This is cross between Timor coffee and Caturra coffee. It was created in Portugal in 1959']]],
result = array.map(function (a) {
var o = {};
a.forEach(function (b) {
o[b[0]] = b[1];
});
return o;
});

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

关于javascript - 将多深度数组对象数组转换为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002247/

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