所以我有一个看起来像这样的对象:
我想把它转换成数组,经过一些研究后,我做了类似的事情:
Object.keys(langs).map(function (key) { return langs[key]; });
,输出如下:
虽然它有效,但这不是我想要的。我想做的是像
[
{
"code": "af",
"lang": "Afrikaans"
},
{
"code": "am",
"lang": "Amharic"
},
{
"code": "ar",
"lang": "Arabic"
}
]
依此类推......
最好的方法是什么?任何帮助将不胜感激..
答案 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}))