gpt4 book ai didi

javascript - 传播运算符将对象转换为数组

转载 作者:可可西里 更新时间:2023-11-01 02:37:32 25 4
gpt4 key购买 nike

我正在尝试转换这样的数据结构:

data = { 
0:{A:a},
1:{B:b},
2:{C:c},
}

变成这样的结构:

[
{0:{A:a}},
{1:{B:b}},
{2:{C:c}},
]

像这样使用展开运算符:[...data] 返回任何空数组。

我也试过[{...data}]

有没有一种方法可以使用展开运算符来获得所需的结果?另外,为什么这种方法不起作用?

最佳答案

“有没有办法使用展开运算符来获得所需的结果?”简短的回答,没有。 (请参阅下文以了解您要完成的任务的替代解决方案)

“另外,为什么这种方法不起作用?”

它不起作用,因为根据 MDN docs

"The Rest/Spread Properties for ECMAScript proposal (stage 3) adds spread properties to object literals. It copies own enumerable properties from a provided object onto a new object."

正如文档所说,根据“Rest/Spread Properties proposal”,您不能将对象属性扩展到一个数组中,对象总是将它们的属性扩展到一个新对象中。同样,数组不会扩散到一个对象上,它们只会扩散到一个新数组上。

备选方案:

您可以使用 Object.keys().map() 轻松完成此操作。 Object.keys()将获得对象键的数组,Array.map()会将它们映射到所需结构的数组中,如下所示:

var data = { 
0:{A:"a"},
1:{B:"b"},
2:{C:"c"},
}

var result = Object.keys(data).map(function (key) {
return { [key]: data[key] };
});
console.log(result);

关于javascript - 传播运算符将对象转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45285171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com