JavaScript中实现类似Java中的Map对象

转自:http://apps.hi.baidu.com/share/detail/30517952

  1. <script>   
  2. function Map() {   
  3. var struct = function (key, value) {   
  4.    this .key = key;   
  5.    this .value = value;   
  6. }   
  7.   
  8. var put = function (key, value){   
  9.    for ( var i = 0; i < this .arr.length; i++) {   
  10.     if ( this .arr[i].key === key ) {   
  11.      this .arr[i].value = value;   
  12.      return ;   
  13.     }   
  14.    }   
  15.     this .arr[ this .arr.length] = new struct(key, value);   
  16. }   
  17.   
  18. var get = function (key) {   
  19.    for ( var i = 0; i < this .arr.length; i++) {   
  20.     if ( this .arr[i].key === key ) {   
  21.       return this .arr[i].value;   
  22.     }   
  23.    }   
  24.    return null ;   
  25. }   
  26.   
  27. var remove = function (key) {   
  28.    var v;   
  29.    for ( var i = 0; i < this .arr.length; i++) {   
  30.     v = this .arr.pop();   
  31.     if ( v.key === key ) {   
  32.      continue ;   
  33.     }   
  34.     this .arr.unshift(v);   
  35.    }   
  36. }   
  37.   
  38. var size = function () {   
  39.    return this .arr.length;   
  40. }   
  41.   
  42. var isEmpty = function () {   
  43.    return this .arr.length <= 0;   
  44. }   
  45.   
  46. this .arr = new Array();   
  47. this .get = get;   
  48. this .put = put;   
  49. this .remove = remove;   
  50. this .size = size;   
  51. this .isEmpty = isEmpty;   
  52. }   
  53. </script>   
  54.   
  55. <script>   
  56. var map = new Map();   
  57. map.put( "re" , "redhacker" );   
  58. map.put( "do" , "douguoqiang" );   
  59. map.put( "gq" , "dougq" );   
  60. alert( "map的大小为:" + map.size())   
  61. alert( "key为re的map中存储的对象为:" + map.get( "re" ));   
  62. map.remove( "re" );   
  63. alert( "移除key为re的对象后,获取key为re的map中存储的对象为:" + map.get( "re" ));   
  64. alert( "map移除一个元素后的大小为:" + map.size());   
  65. alert( "map是否是一个空map:" + map.isEmpty());  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值