我有一个对象和结果对象的数组。如何将所有数组元素添加到结果对象
let result = {
list: 'example',
foo: 'something'
}
let array = [
{
item: 'a',
value: 'a',
},
{
item: 'b',
value: 'b',
},
{
item: 'c',
value: 'c',
},
]
let result = {
list: 'example',
foo: 'something',
array
}
console.log(result);
我需要的结果是:
{
list: 'example',
foo: 'something',
item[0]: 'a',
value[0]: 'a',
item[1]: 'b',
value[1]: 'b',
item[2]: 'c',
value[2]: 'c'
}
我应该如何添加数组?我正在尝试类似JSON.stringify之类的方法,但无法获得所需的格式。
答案 0 :(得分:4)
您可以迭代数组的对象,并将值分配给组合键。
var result = { list: 'example', foo: 'something' },
array = [ { item: 'a', value: 'a' }, { item: 'b', value: 'b' }, { item: 'c', value: 'c' }];
array.forEach((o, i) =>
Object.entries(o).forEach(([k, v]) => result[`${k}[${i}]`] = v));
console.log(result);
答案 1 :(得分:2)
您可以使用Array.forEach
遍历数组并填充所需的属性:
let result = {
list: 'example',
foo: 'something'
}
let array = [{
item: 'a',
value: 'a',
},
{
item: 'b',
value: 'b',
},
{
item: 'c',
value: 'c',
}
]
array.forEach((obj, index) => {
result[`item[${index}]`] = obj.item;
result[`value[${index}]`] = obj.value;
});
console.log(result);
答案 2 :(得分:1)
你的意思是那样吗?
array.map(element => Object.assign(result, {[element.item]: element.value}))
答案 3 :(得分:0)
我认为您可以做到
array.unshift(result);
如果不是您想要的,则可以使用循环遍历数组中的所有元素,并将它们一个接一个地添加(如果您尝试取出每个元素,但不包含一个'{item,value}'元素)