JS将数组的值添加到对象

时间:2018-09-20 07:58:09

标签: javascript object

我有一个对象和结果对象的数组。如何将所有数组元素添加到结果对象

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之类的方法,但无法获得所需的格式。

4 个答案:

答案 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}'元素)