我的返回数组有一个输出,如下所示:
[{
SENIORS: "SINGLE_MAN",
age: "U21",
fullName: "John Doe",
personId: "0001337"
}]
我需要将其返回为一种新格式,我需要将上面的值添加到新键中,其中一些嵌套与下面的结构完全相同。
[
{
"personId": "0001337",
"Groups": [
{
"group":"SENIORS",
"status" :"SINGLE_MAN"
}
]
}
]
如您所见,我创建了一个名为“组”的新键,并在该名为“组”和“状态”的内部创建了 2 个新键。不确定如何最好地创建键并同时将旧值分配给它们。 Senior 的原始 key 现在需要成为组的属性。
我正在使用lodash,可以使用吗?
最佳答案
如果它始终具有四个属性,并且其中只有一个是动态的,则可以使用扩展语法隔离动态属性。然后使用 Object.entries
和 map
像这样:
const input = [{
SENIORS: "SINGLE_MAN",
age: "U21",
fullName: "John Doe",
personId: "0001337"
},
{
JUNIORS: "SINGLE_WOMAN",
age: "U22",
fullName: "Jane Doe",
personId: "0001338"
}]
const output = input.map(({ personId, fullName, age, ...rest}) => {
const [group, status] = Object.entries(rest)[0];
return { personId, Groups: [{ group, status }] }
})
console.log(output)
关于javascript - 将具有动态键的对象数组转换为新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54594268/