zoukankan      html  css  js  c++  java
  • JavaScript笔记

          可以依据js对象中key是永远不会重复的原则,来模拟Map类型以及去除数组重复项。

    1、模拟Map类型

    (1)构造Map对象

    function Map(){
        //private
         var obj = {}; // 空的对象容器,存放键值对
    
        //put方法
        this.put = function (key,value){
            obj[key] = value;
        }
        //get方法
        this.get = function(key){
            if(obj[key] || obj[key] === 0 || obj[key] === false){
                return obj[key];
            }else{
                return null;
            }
        }
        //remove方法
        this.remove = function(key){
            if(obj[key] || obj[key] === 0 || obj[key] === false){
                delete obj[key];
            }
        }
        //size方法
        this.size = function(){
            var count= 0;
             for(var arr in obj){
                 count++;
             }
             return count;
        }
        //遍历方法,采用回调函数的方式
        this.eachMap = function(fn){
             for(var arr in obj){
                 fn(arr,obj[arr]);
             }
        }
    }
    

    (2)测试代码

    //模拟java里的Map类型
    //函数也是一种对象,可以使用new的方式建立函数实例
     var m = new Map();
     m.put('01','sscs');
     alert(m.size());
     alert(m.get('01'));
     m.remove('01');
    
    //遍历对象元素,传入的参数是一个函数
     m.eachMap(function(key,value){
         alert(key +":"+value);
     });

    2、去除数组重复项

    (1)实现代码

    function unique(arr){
        //第一步:把数组中的值,变成js对象中的key
        var obj = {}; //私有对象
        for( var i = 0,j = arr.length;i<j;i++){
            obj[arr[i]] = true;
        }
        //第二部:再把js对象还原成数组
        var arr = [];//私有对象
        for(var attr in obj){
            if(obj.hasOwnProperty(attr)){
                arr.push(attr);
            }
        }
        return arr;
    }

    (2)测试程序

    var arr = [1,1,3,4,5];
    alert(unique(arr)); //显示1,3,4,5
  • 相关阅读:
    学习笔记-Java设计模式-结构型模式1
    学习笔记-Java设计原则
    阅读笔记:DQL、DML、DDL、DCL的概念与区别
    阅读笔记-HTTP返回状态码
    大数据应用技术课程实践--选题与实践方案
    15 手写数字识别-小数据集
    14 深度学习-卷积
    java集合(一)
    13-垃圾邮件分类2
    机器学习——12.朴素贝叶斯-垃圾邮件分类
  • 原文地址:https://www.cnblogs.com/sh086/p/8453206.html
Copyright © 2011-2022 走看看