Javascript如何判断对象是否是Map Iterator?

时间:2017-11-23 01:28:53

标签: javascript node.js

我正在写一些正在传递Map Iterator的NodeJS代码。检查Javascript对象以确定它是" Map Iterator"?

的正确方法是什么?

我试过了:

typeof myMap.keys() returns 'Object'
typeof myMap.keys().next === 'function' returns true

所以我要检查传递的对象是否有next()函数。有一个更好的方法吗?

Chrome调试器对象是一个Map Iterator,因此我猜测有一种更正确的Javascript方式可以做到这一点。

2 个答案:

答案 0 :(得分:1)

如果您要做的只是检查它是否是Map(可以迭代),您可以使用myMap instanceof Map执行此操作,返回布尔值。

答案 1 :(得分:0)

您获得了对象的Symbol.toStringTag属性

var m = new Map;
m.set(1, [123]);
var gen = m.entries();

console.log(gen.toString()); // "[object Map Iterator]";
console.log(gen[Symbol.toStringTag] === "Map Iterator"); // true