js怎么判断一个变量是map类型

 我来答
zhou2003737
2015-03-06 · TA获得超过1427个赞
知道小有建树答主
回答量:1082
采纳率:77%
帮助的人:400万
展开全部

首先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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式