您的位置:首页 > Web前端 > JavaScript

javascript中Map的应用

2015-11-23 15:16 666 查看
function Map() {

    this.elements = new Array();

    //获取MAP元素个数

    this.size = function() {

        return this.elements.length;

    };

    //判断MAP是否为空

    this.isEmpty = function() {

        return (this.elements.length < 1);

    };

    //删除MAP所有元素

    this.clear = function() {

        //this.elements = new Array();

        this.elements.length = 0;

    };

    //向MAP中增加元素(key, value)

    this.put = function(_key, _value) {

        this.remove(_key);

        this.elements.push( {

            key : _key,

            value : _value

        });

    };

    //删除指定KEY的元素,成功返回True,失败返回False

    this.remove = function(_key) {

        var bln = false;

        try {

            for (i = 0; i < this.elements.length; i++) {

                if (this.elements[i].key == _key) {

                    this.elements.splice(i, 1);

                    return true;

                }

            }

        } catch (e) {

            bln = false;

        }

        return bln;

    };

    //获取指定KEY的元素值VALUE,失败返回NULL

    this.get = function(_key) {

        try {

            for (i = 0; i < this.elements.length; i++) {

                if (this.elements[i].key == _key) {

                    return this.elements[i].value;

                }

            }

        } catch (e) {

            return null;

        }

    };

    //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL

    this.element = function(_index) {

        if (_index < 0 || _index >= this.elements.length) {

            return null;

        }

        return this.elements[_index];

    };

    //判断MAP中是否含有指定KEY的元素

    this.containsKey = function(_key) {

        var bln = false;

        try {

            for (i = 0; i < this.elements.length; i++) {

                if (this.elements[i].key == _key) {

                    bln = true;

                }

            }

        } catch (e) {

            bln = false;

        }

        return bln;

    };

    //判断MAP中是否含有指定VALUE的元素

    this.containsValue = function(_value) {

        var bln = false;

        try {

            for (i = 0; i < this.elements.length; i++) {

                if (this.elements[i].value == _value) {

                    bln = true;

                }

            }

        } catch (e) {

            bln = false;

        }

        return bln;

    };

    //获取MAP中所有VALUE的数组(ARRAY)

    this.values = function() {

        var arr = new Array();

        for (i = 0; i < this.elements.length; i++) {

            arr.push(this.elements[i].value);

        }

        return arr;

    };

    //获取MAP中所有KEY的数组(ARRAY)

    this.keys = function() {

        var arr = new Array();

        for (i = 0; i < this.elements.length; i++) {

            arr.push(this.elements[i].key);

        }

        return arr;

    };

}

/*****************************测试页面    index.jsp*******************************/

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<script type="text/javascript" src="js/map.js"></script>

<title>map js Test</title>

</head>

<body>

</body>

<script type="text/javascript">

var map = new Map();

map.put("key0","value0");

map.put("key1","value1");

map.put("key2","value2");

map.put("key3","value3");

map.put("key4","value4");

map.put("key5","value5");

function Test(){

    if(map.size() > 0){

        var keys = map.keys();

        for(var i=0;i<keys.length;i++){

           alert("key:" + keys[i] + "value:" + map.get(keys[i]));

        }

    }

}

function TestRemove(){

    if(map.size() > 0){

        var keys = map.keys();

        for(var i=0;i<keys.length;i++){

           alert("动态移除key:" + keys[i]);

           map.remove(keys[i]);

        }

    }

}

function TestClear(){

    if(map.size() > 0){

       var keys = map.keys();

       alert("清空所用的keys:" + keys[i]);

       map.clear();

    }

}

 

function getValues(){

    if(map.size() > 0){

        var values = map.values();

        for(var i=0;i<values.length;i++){

           alert("value:" + values[i]);

        }

    }

}

</script>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript map应用