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

Javascript 如何转换数组中的对象保存密钥,javascript,Javascript,我想将我的对象更改为该对象的数组,这是我拥有的: const myObj = { element1: { value1: 1, value2: 2 }, element2: { value1: 3, value2: 4 }, element3: { value1: 5, value2: 6 } } 我想得到的是: const myArray = [ {element1: { value1: 1, val

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

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”钥匙


我缺少什么?

您只是忘记了实际包含键,也就是
变量,您只需要使用
myObject[item]
包含这样的键的值

应该是:

const myArray = Object.keys(myObject).map(item => {
  return { [item]: myObject[item] };
});
因为忘记了键,所以只得到值

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

您就快到了,您必须返回一个对象,而不仅仅是对象的属性

const myArray = Object.keys(myObj).map((item) => {
      let temp = {};
      temp[item] = myObj[item];
      return temp;
    });

我猜这会始终返回键作为
项,但不会返回
元素1
元素2
等等!这就是我的问题,唯一的一点是按[item]更改item,因为如果不是所有元素都有“item”,那么它的值在代码的最后一行缺少一个右括号
}