【发布时间】:2021-06-09 10:36:56
【问题描述】:
我有这个存放对象的数组;
let arr = [
{
"id": 1,
"level": "2",
},
{
"id": 2,
"level": "3",
}
]
默认情况下,数组的键从 0 开始,如下所示:
[
0: {id: 1, level:2},
1: {id: 2, level:3}
]
如何转换它以使键是属性“级别”的值? 它应该是这样的:
[
2: {id:1, level:2},
3: {id:1, level:3}
]
到目前为止,我已经尝试过了,但它并没有删除原始密钥:
arr.map((v, k) => ({[v.level]: v}));
所以我有这样的事情:
[
0: {2:
{id: 1, level:2}
},
1: {3:
{id: 2, level:3}
}
]
【问题讨论】:
-
arr.map((v, k) => ({[v.level]: v}));你的代码应该给出结果 -
@Rajdeep Debnath 它没有。
-
你期望的结果是不可能的,你需要一个对象,而不是一个数组。
{ 2: { id: 1, level: 2 }, 3: {id: 2, level: 3 } } -
@Petyor 把它放在问题中的 sn-p 中,你会看到你的预期结果。
标签: javascript arrays ecmascript-6 javascript-objects