如何确定我的数据结构是Map()类型?
我到处寻找,找不到任何方法
我真的想开始使用它们因为我可以使用对象作为键!
答案 0 :(得分:4)
您可以使用 instanceof opeartor
var map = new Map();
var arr = [];
console.log(map instanceof Map);
console.log(map instanceof Array);
console.log(arr instanceof Map);
console.log(arr instanceof Array);

instanceof运算符测试对象是否在其原型中 链接构造函数的prototype属性。
答案 1 :(得分:3)
您可以使用instanceof
运算符或constructor
属性并检查对象。
欲了解更多信息,请阅读:What's the difference between using instanceof and checking the constructor?
var map = new Map();
var arr = [];
console.log(map instanceof Map); // true
console.log(map instanceof Array); // false
console.log(map.constructor === Map); // true
console.log(map.constructor === Array); // false
console.log(arr instanceof Map); // false
console.log(arr instanceof Array); // true
console.log(arr.constructor === Map); // false
console.log(arr.constructor === Array); // true
// caveat!
console.log(arr.constructor === Object); // false
console.log(map.constructor === Object); // false
console.log(arr instanceof Object); // true
console.log(map instanceof Object); // true
答案 2 :(得分:0)
您甚至可以使用Object.prototype.toString.call
,但instanceof
(@ suren srapyan的答案)更受欢迎
var a = [1,2,3];
var m = new Map()
a.forEach((x,i)=>m.set(i+1, x));
console.log(Object.prototype.toString.call(m))