JavaScript中模拟 Dictionary键值对

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 13:24 点击:

JavaScript常常遇到一些键值对,以前用二维数组实现,今天索性模拟了一下Dictionary帮助类。

原理:创建一个对象,包含两个数组,键数组和值数组,调用JavaScript  Array对象的方法。

W3C参考地址:asp">http://www.w3school.com.cn/js/jsref_obj_array.asp

BuildDictionary()方法用于创建一个包含两个数组的Dictionary对象

AddItem方法 调用JavaScript的 Array对象的push方法,用于将key,value追加到相应的数组。

UpdateItem方法用于更改相应的value

DeleteItem方法 调用JavaScript的Array对象的Splice方法用于删除元素,第一个参数是需要删除的元素的index,第一个参数代表删除的个数。

GetKeyStr用于得到Keys数组拼接后的字符串

GetValueStr用于得到Values数组拼接后的字符串

共包含五个方法:

/*创建Dictionary*/
function BuildDictionary() {
    dic = new Object();
    dic.Keys = new Array();      //键数组
    dic.Values = new Array();   //值数组
    return dic;
}

/*添加 key,value*/
function AddItem(key, value, dic) {
    var keyCount = dic.Keys.length;
    if (keyCount > 0) {
        var flag = true;
        for (var i = 0; i < keyCount; i++) {
            if (dic.Keys[i] == key) {
                flag = false;
                break; //如果存在则不添加
            }
        }
        if (flag) {
            dic.Keys.push(key)
            dic.Values.push(value);
        }
    }
    else {
        dic.Keys.push(key)
        dic.Values.push(value);
    }
    return dic;
}
/*更改key,value*/
function UpdateItem(key, value, dic) {
    var keyCount = dic.Keys.length;
    if (keyCount > 0) {
        var flag = -1;
        for (var i = 0; i < keyCount; i++) {
            if (dic.Keys[i] == key) {
                flag = i;
                break; //查找相应的index
            }
        }
        if (flag > -1) {
            dic.Keys[flag] = key;
            dic.Values[flag] = value;
        }
        return dic;
    }
    else {
        return dic;
    }
}
/*移除key value*/
function DeleteItem(key, dic) {
    var keyCount = dic.Keys.length;
    if (keyCount > 0) {
        var flag = -1;
        for (var i = 0; i < keyCount; i++)

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Gb2312转utf-8编码的方法(vbs+js)
      • 如何使用Ajax技术开发Web应用程序(1)
      • js跳转路径问题
      • JavaScript模仿桌面窗口
      • 用js检测两个线段是否相交
      • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
      • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
      • 我是如何去了解jquery的(六),案例之幻灯片轮换
      • Jquery封装幻灯片效果
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1