如何在保存密钥的数组中转换对象

时间:2018-09-26 07:12:39

标签: javascript

我想将我的对象更改为此对象的数组,这就是我所拥有的:

const myObj = {
  element1: {
    value1: 1,
    value2: 2
  },
  element2: {
    value1: 3,
    value2: 4
  },
  element3: {
    value1: 5,
    value2: 6
  }
}

我想要得到的是:

const myArray = [
  {element1: {
    value1: 1,
    value2: 2
  }
  },{
  element2: {
    value1: 3,
    value2: 4
  },{
  element3: {
    value1: 5,
    value2: 6
  }
 }
]

但是我不明白,这是我的选择:

const myArray = Object.keys(myObj).map(item => myObj[item]);

但是我丢失了“ elementX”键。

我想念什么?

2 个答案:

答案 0 :(得分:2)

您只是忘记实际包含键(也称为item变量),而只是使用myObject[item]包含了该键的值。

应该是:

const myArray = Object.keys(myObject).map(item => {
  return { [item]: myObject[item] };
});

因为忘记了密钥,所以您只获得了价值。

使用带有对象文字的箭头函数的隐式返回,可以使用如下表达式括号: Object.keys(myObject).map(item => ({ [item]: myObject[item] }) );

答案 1 :(得分:0)

您快到了,您必须返回一个对象,而不仅仅是对象的属性 const myArray = Object.keys(myObj).map((item)=> {       let temp = {};       temp [item] = myObj [item];       返回温度     }); 演示