开发者问题收集

JS 将数组的值添加到对象

2018-09-20
90

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

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

3个回答

您可以迭代数组的对象并将值分配给组合键。

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);
Nina Scholz
2018-09-20

您可以遍历数组并使用 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);
mehmetseckin
2018-09-20

您是这个意思吗?

array.map(element => Object.assign(result, {[element.item]: element.value}))
AdMer
2018-09-20