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”,那么它的值在代码的最后一行缺少一个右括号}
。