js05---js实现Map

简介:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8>
        function Map(){
            // private,局部变量
            var obj = {} ;// 空的对象容器,承装键值对
            
            // put 方法
            this.put = function(key , value){
                    obj[key] = value ;        // 把键值对绑定到obj对象上
            }
            
            // size 方法 获得map容器的个数
            this.size = function(){
                    var count = 0 ; 
                    for(var attr in obj){
                        count++;
                    }
                    return count ; 
            }
            
            // get 方法 根据key 取得value
            this.get = function(key){
                if(obj[key] || obj[key] === 0 || obj[key] === false){//obj[key]为0或者false,不走这里了。
                    return obj[key];
                } else {
                    return null;
                }
            }
            
            //remove 删除方法
            this.remove = function(key){
                if(obj[key] || obj[key] === 0 || obj[key] === false){
                    delete obj[key];                        
                }
            }
            
            // eachMap 变量map容器的方法
            this.eachMap = function(fn){
                    for(var attr in obj){
                        fn(attr, obj[attr]);
                    }
            }
        }
    
        //模拟java里的Map
        var m = new  Map();
        m.put('01' , 'abc');
        m.put('02' , false) ;
        m.put('03' , true);
        m.put('04' , new Date());
        
        alert(m.size());
        
        alert(m.get('02'));
        m.remove('03');
        alert(m.get('03'));
        
        m.eachMap(function(key , value){
             alert(key +""+ value);
        });
        </script>
    </head>
    <body>
    </body>
</html>
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/6860892.html,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
40 3
|
2月前
|
JavaScript 前端开发 索引
问js的forEach和map的区别
JavaScript中的`forEach`和`map`都是数组迭代方法。`forEach`遍历数组但不修改原数组,无返回值;它接受回调函数处理元素。`map`则遍历数组并返回新数组,新数组元素为回调函数处理后的结果。两者都接收元素、索引和数组作为回调函数参数。
28 7
|
14天前
|
存储 JavaScript 前端开发
JavaScript进阶-Map与Set集合
【6月更文挑战第20天】JavaScript的ES6引入了`Map`和`Set`,它们是高效处理集合数据的工具。`Map`允许任何类型的键,提供唯一键值对;`Set`存储唯一值。使用`Map`时,注意键可以非字符串,用`has`检查键存在。`Set`常用于数组去重,如`[...new Set(array)]`。了解它们的高级应用,如结构转换和高效查询,能提升代码质量。别忘了`WeakMap`用于弱引用键,防止内存泄漏。实践使用以加深理解。
|
2天前
|
存储 JavaScript
js的forEach和map的区别
js的forEach和map的区别
7 1
|
2天前
|
存储 JavaScript 前端开发
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(二)
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(二)
9 1
|
2天前
|
存储 JavaScript 前端开发
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(一)
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(一)
7 0
|
17天前
|
JavaScript 前端开发
JavaScript 数组的函数 map/forEach/reduce/filter
JavaScript 数组的函数 map/forEach/reduce/filter
|
2月前
|
JavaScript 前端开发
JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式
【5月更文挑战第11天】JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式。map() 用于创建新数组,其中元素是原数组元素经过指定函数转换后的结果;filter() 则筛选出通过特定条件的元素生成新数组;reduce() 将数组元素累计为单一值。这三个方法使代码更简洁易读,例如:map() 可用于数组元素乘以 2,filter() 用于选取偶数,reduce() 计算数组元素之和。
21 2
|
2月前
|
前端开发 JavaScript 程序员
Javascript:forEach、map、filter、reduce、reduceRight
Javascript:forEach、map、filter、reduce、reduceRight
|
2月前
|
存储 缓存 JavaScript
JavaScript中的Set和Map:理解与使用
JavaScript中的Set和Map:理解与使用