首页 > 解决方案 > 将 Json 数据映射到新的键值对 Node.js

问题描述

我想将一个 json 数据映射到一个新的 javascript 对象

前:

{
    "Germany": 1,
    "France": 1
}

[
    {
        "name": "Germany",
        "anzahl": 1
    },
    {
        "name": "France",
        "anzahl": 1
    }
]

这是代码:

const dataMap = Object.keys(s).map((filename, x) => {
      Object.keys(s[filename]).map((n) => ({
        anzahl: n
      }))
      return ({
        name: filename,
        anzahl: x
      });
    })

这给出了以下输出:

[
    {
        "name": "Germany",
        "anzahl": 0
    },
    {
        "name": "France",
        "anzahl": 1
    }
]

谁能帮帮我?

标签: javascriptnode.js

解决方案


Array.prototype.map的回调的第二个参数是数组的当前索引,这就是为什么x是一个从 0 开始并递增的数字。相反,如果您将其编写如下:

const dataMap = Object.keys(s).map((filename) => {
    return {
        name: filename,
        anzahl: s[filename]
    }
});

这会将 的每个键s转换为一个对象,该对象name是该键,并且anzahl是访问filename对象上的键的结果s


推荐阅读