如何在JavaScript中将具有property和key的对象转换为Array?

时间:2017-06-10 02:40:38

标签: javascript arrays object

所以我有一个看起来像这样的对象:

enter image description here

我想把它转换成数组,经过一些研究后,我做了类似的事情:

Object.keys(langs).map(function (key) { return langs[key]; });

,输出如下:

enter image description here

虽然它有效,但这不是我想要的。我想做的是像

[
    {
        "code": "af",
        "lang": "Afrikaans"
    },
    {
        "code": "am",
        "lang": "Amharic"
    },
    {
        "code": "ar",
        "lang": "Arabic"
    }
]

依此类推......

最好的方法是什么?任何帮助将不胜感激..

3 个答案:

答案 0 :(得分:2)

Object.keys(langs).map(function (key) { return { 'code': key, 'lang': langs[key]}; });

我们返回一个带有属性代码和lang

的新对象,而不是只返回值

答案 1 :(得分:1)

您只需将代码属性添加到地图中即可:

var obj = {
  "af" : "Afrikaans",
  "am" : "Amharic",
  "ar" : "Arabic"
}

var res = Object.keys(obj).map(e => ({ code: e, lang: obj[e] }))

console.log(res);

答案 2 :(得分:0)

如果你有Object#entries可用,你可以简洁地写成

langs.entries().map(([code, lang]) => ({code, lang}))