首页 > 解决方案 > 将 Object 转换为 Object Javascript 数组

问题描述

以下是我想要转换为数组的对象,但似乎我在这里遗漏了一些东西。请让我知道我在这里做错了什么。

代码 -

var langObj = {
    "CON1010": {
    "countryName": "Poland",
    "countryCode": "pl",
    "localLanguages": [
        {
            "language": "English",
            "languageCode": "en"
        },
        {
            "language": "Polish",
            "languageCode": "en"
        }
      ]
    },
    "CON1011": {
        "countryName": "UK",
        "countryCode": "uk",
        "localLanguages": [
            {
                "language": "English",
                "languageCode": "en"
            }
        ]
    }
};


var res = Object.entries(langObj).map(([value, label]) => ({value, label}));
console.log(res);

预期产出 -

[
    {
        "CON1010": {
            "countryName": "Poland",
            "countryCode": "pl",
            "localLanguages": [
                {
                    "language": "English",
                    "languageCode": "en"
                },
                {
                    "language": "Polish",
                    "languageCode": "en"
                }
            ]
        }
    },
    {
        "CON1011": {
            "countryName": "UK",
            "countryCode": "uk",
            "localLanguages": [
                {
                    "language": "English",
                    "languageCode": "en"
                }
            ]
        }
    }
]

标签: javascriptecmascript-6

解决方案


您需要方括号来获取动态评估的字段名称:

var res = Object.entries(langObj).map(([value, label]) => ({[value]:label}));

var langObj = {
    "CON1010": {
      "countryName": "Poland",
      "countryCode": "pl",
      "localLanguages": [
        {
          "language": "English",
          "languageCode": "en"
        },
        {
          "language": "Polish",
          "languageCode": "en"
        }
      ]
    },
    "CON1011": {
      "countryName": "UK",
      "countryCode": "uk",
      "localLanguages": [
        {
          "language": "English",
          "languageCode": "en"
        }
      ]
    }
};


var res = Object.entries(langObj).map(([value, label]) => ({[value]:label}));
console.log(res);


推荐阅读