如何在 javascript ES6 中获取 Map 作为对象?

新手上路,请多包涵

我的班级使用 es6 在节点级别创建地图对象,使用 Map()–“set”函数。调用类时,我希望将地图对象转换为普通的 json 类型结构。我正在使用 moongoose 从数据库中检索数据。

 res.json(MapObject);

使用此 res.json 后,父节点内的整个内容都变空了。

 {success:{},
 error:{},
redirectMe:false}

有这样的地图对象

{
  success:
   Map {
     'String1' => 'true',
     'Object1' => [ [Object],
                    [Object],
                    [Object],
                    [Object],
                    [Object]
                  ]
     'String2' => 100
     }
  error: Map {},
  redirectMe: false
}

我想获得作为对象的结果但是当我试图获得它时无法获得任何东西

想要类似的东西

{
  success:
    {
     'String1' : 'true',
     'Object1' : [ [Object],
                    [Object],
                    [Object],
                    [Object],
                    [Object]
                  ]
     'String2' : 100
     }
  error: {},
  redirectMe: false
}

原文由 Kunal Vashist 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 490
2 个回答

将地图转换为对象的更好方法

let jsonResponse = {};
            for(let [key,val] of MapObject.entries()){
                jsonResponse[key]= val;
            }

console.log(jsonResponse);

原文由 Kunal Vashist 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用本机 JS 函数轻松地将地图转换为对象:

 Object.fromEntries(map);

注意:此功能是 ECMAScript 10 规范的一部分,受 Node.js 12+ 和 Chrome 73+ 支持,也可以使用此 插件 填充以在旧平台上工作

 const map = new Map();
// Setting up some sample data
map.set("foo", "bar");
map.set("pets", ["Fido", "Foobar", "Al"]);
// Convert map to object
const convertedMap = Object.fromEntries(map);

console.log(convertedMap);

原文由 Emad Salah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题