如何解决我将如何减少这个数组,以便每个对象中的对象合并 javascript 但不知道键值名称
我在数组中有一个数组,我想减少子数组,使它们成为其中的一个对象。这是生成数组的代码
const final = data.formEntryData.map((item) => {
//console.log(Object.keys(item.data));
let key = Object.values(item.data);
let test = data.hmm.map((array) => {
//console.log(array.arrayOrder);
return { [array.name]: key[array.arrayOrder] };
});
return test;
});
这里是数组中的数组
[
[
{ 'Product Title Test': 'fdsafa' },{ 'Product Description': 'ffdsafa' },{ 'Product Image': 'fdasf' },{ 'Product Price': undefined },{ 'Live on Website Test two Three': undefined }
],[
{ 'Product Title Test': 'Roasted Beans' },{ 'Product Description': 'For the Squire' },{ 'Product Image': 'http://image.com' },[
{ 'Product Title Test': 'Shoes' },{ 'Product Description': 'Worn' },{ 'Product Image': 'google.com' },{ 'Product Price': '100' },[
{ 'Product Title Test': 'fdsajkl' },{ 'Product Description': 'klfdlsk' },{ 'Product Image': 'flkdsjl' },{ 'Product Price': 'flskj' },{ 'Live on Website Test two Three': 'lkjfsdlk' }
],[
{ 'Product Title Test': 'shoes' },{ 'Product Description': 'very good' },{ 'Product Image': 'image.com' },{ 'Product Price': '20' },{ 'Live on Website Test two Three': 'yes' }
],[
{ 'Product Title Test': 'fdsaf' },{ 'Product Description': 'fdsa' },{ 'Product Image': 'fdsa' },{ 'Product Price': 'fdsa' },{ 'Live on Website Test two Three': 'fdsa' }
],[
{ 'Product Title Test': 'fdskj' },{ 'Product Description': '291898868491092489' },{ 'Product Image': 'fsdk' },{ 'Product Price': '291898998629859848' },{ 'Live on Website Test two Three': 'fsd;lk' }
],[
{ 'Product Title Test': 'fdsfa' },{ 'Product Description': 'fdsaf' },{ 'Product Image': 'fdsafa' },{ 'Product Price': 'fdsaf' },{ 'Live on Website Test two Three': 'fdasf' }
],[
{ 'Product Title Test': 'ds' },[
{ 'Product Title Test': 'fdsfds' },{ 'Product Description': 'fdsfafds' },{ 'Product Image': 'fdsafs' },{ 'Live on Website Test two Three': 'fdsaf' }
],{ 'Product Description': 'fdsafs' },{ 'Product Image': 'fdasfd' },{ 'Product Price': 'fdasfdsa' },{ 'Live on Website Test two Three': 'fdasfd' }
]
]
我想merge the subarrays
,所以看起来像这样
[
[...],[
{ 'Product Title Test': 'fdsaf','Product Description': 'fdsafs','Product Image': 'fdasfd','Product Price': 'fdasfdsa','Live on Website Test two Three': 'fdasfd' }
],[...]
]
我看过这样的reduce
var arr = [{key:"11",value:"1100"},{key:"22",value:"2200"}];
var object = final.reduce(
(obj,item,) => Object.assign(obj,{ [item.key]: item.value }),{});
console.log(object)
但是我不知道 item.key
和 .item.value
名称,因为它们是在 map 函数中派生的。
任何帮助都会很棒。谢谢!
解决方法
给定您提供的数组,您可以使用以下函数将嵌套数组合并为对象,该函数使用 Object.entries
访问每个对象的属性。
function mergeInner(outer) {
return outer.map(inner =>
inner.reduce((merged,obj) => {
Object.entries(obj).forEach(([k,v]) => {
merged[k] = v;
});
return merged;
},{})
);
}
产生:
[
{
'Product Title Test': 'fdsafa','Product Description': 'ffdsafa','Product Image': 'fdasf','Product Price': undefined,'Live on Website Test two Three': undefined
},{
'Product Title Test': 'Roasted Beans','Product Description': 'For the Squire','Product Image': 'http://image.com',...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。