如何在控制台中显示JavaScript ES6地图对象? [英] How can I display a javascript ES6 map object in console?

查看:58
本文介绍了如何在控制台中显示JavaScript ES6地图对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 repl.it/languages/javascript

在打印出来之前是否必须将其转换为对象?

Do I have to convert it to an object before I print it out?

我已经尝试过

    const mapObject = new Map();
    
    mapObject.set(1, 'hello');
    
    console.log(JSON.stringify(mapObject));
    console.log(mapObject);

结果始终为空对象

当我使用

console.log([...mapObject]);

它打印出数组格式。

推荐答案

注意:此答案仅与OP正在使用的repl.it沙箱环境相关。

由于您在评论中说您正在使用 repl.it ,因此您可以使用一个技巧编写自己的日志记录策略。

Since you said in the comments that you're using repl.it, there's a trick you can use to write your own "logging strategy".

请注意,您不应在生产中使用此技巧,主要是因为它可以编辑本机原型。在某些Node环境中,用您自己的代码可能会有用。

Note that you shouldn't use this trick in production, mainly because it edits a native prototype. In some Node environment, in your own code, it could be useful though.

这个想法是创建一个检查 地图的方法,该方法在条目上进行迭代:

The idea is to create an inspect method for Map that iterates over the entries:

Map.prototype.inspect = function() {
  return `Map(${mapEntriesToString(this.entries())})`
}

function mapEntriesToString(entries) {
  return Array
    .from(entries, ([k, v]) => `\n  ${k}: ${v}`)
    .join("") + "\n";
}

您可以看到repl.it支持它 此处

You can see that repl.it supports it here

console.log(new Map([["a", 1], ["b", 2]]));
// Logs:
/*
Map(
  a: 1
  b: 2
)
*/

这篇关于如何在控制台中显示JavaScript ES6地图对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆