js怎么判断一个变量是map类型
发布网友
发布时间:2022-05-10 15:51
我来回答
共1个回答
热心网友
时间:2022-04-22 11:28
首先js暂时还没有map类型。所以需要先自己定义一个Map类型。代码如下
function Map () {
/**
* 结构
* @param key
* @param value
*/
function Struct(key,value) {
this.key = key;
this.value = value;
}
/**
* 数据存放数组
*/
this.arr = [];
/**
* 增加数据
* @param key {String}
* @param value {Object}
*/
this.put = function (key,value) {
for (var i = 0; i < this.arr.length; i++) {
if (this.arr[i].key === key) {
this.arr[i].value = value;
return;
}
}
this.arr[this.arr.length] = new Struct(key,value);
};
/**
* 通过key获取数据
* @param key {String}
* @returns {Object}
*/
this.get = function (key) {
for (var i = 0; i < this.arr.length; i++) {
if (this.arr[i].key === key) {
return this.arr[i].value;
}
}
return null;
};
/**
* 删除数据
* @param key{String}
*/
this.remove = function (key) {
var v;
for (var i = 0; i < this.arr.length; i++) {
v = this.arr[i];
if (v.key === key) {
this.arr.splice(i,1);
return;
}
}
};
/**
* 是否存在key
* @param key {String}
* @returns {boolean}
*/
this.containsKey = function (key) {
var v;
for (var i = 0; i < this.arr.length; i++) {
v = this.arr[i];
if (v.key === key) {
return true;
}
}
return false;
};
/**
* 获取map数据量
* @returns {Number}
*/
this.size = function () {
return this.arr.length;
};
/**
* 判断Map是否为空
* @returns {boolean}
*/
this.isEmpty = function () {
return this.arr.length <= 0;
};
/**
* 全部清空
*/
this.removeAll = function () {
this.arr = [];
};
}
然后放入数据再做判断
var map = new Map();
map.put("str",'aaaaaa');
console.log(map.get('str'));
//判断是否为Map类型。 instanceof
console.log(map instanceof Map);