javascript - 将具有动态键的对象数组转换为新数组

标签 javascript arrays json object

我的返回数组有一个输出,如下所示:

[{
    SENIORS: "SINGLE_MAN",
    age: "U21",
    fullName: "John Doe",
    personId: "0001337"
}]

我需要将其返回为一种新格式,我需要将上面的值添加到新键中,其中一些嵌套与下面的结构完全相同。

[
    {
    "personId": "0001337",
    "Groups": [
        {
        "group":"SENIORS",
        "status" :"SINGLE_MAN"
        }
    ]
    }
]

如您所见,我创建了一个名为“组”的新键,并在该名为“组”和“状态”的内部创建了 2 个新键。不确定如何最好地创建键并同时将旧值分配给它们。 Senior 的原始 key 现在需要成为组的属性。

我正在使用lodash,可以使用吗?

最佳答案

如果它始终具有四个属性,并且其中只有一个是动态的,则可以使用扩展语法隔离动态属性。然后使用 Object.entriesmap像这样:

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/

相关文章:

javascript - 如何在 Backbone.Marionette View 中最轻松地呈现 i18n 文本和模型属性(使用 Handlebars 模板)

javascript - 为客户端更新更新 View 的模型或数据表?

javascript - 服务器端处理与客户端处理+ ajax?

javascript - 使用 (data.next) vanilla JS 进行 Swapi API 分页

javascript - 递归函数错误在第二次运行时跳过数组中的第一个元素

java - Hamcrest 将 Map 与 String 数组值匹配

javascript - javascript数组中添加的数据以后可以访问吗?

c# - 使用 JavaScriptSerializer 将 csv 转换为 JSON

ios - 为什么-stringWithContentsOfURL : returning nil for my JSON communication here?

c# - 使用获取的 Json 数据返回 Ajax 成功调用中的部分 View