首页 > web前端 > js教程 > 正文

JavaScript中模拟 Dictionary键值对

高洛峰
发布: 2016-11-25 14:01:58
原创
1603人浏览过

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

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

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

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

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

立即学习Java免费学习笔记(深入)”;

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             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             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             if (dic.Keys[i] == key) {
                flag = i;
                break; //查找相应的index
            }
        }
        if (flag > -1) {
            dic.Keys.splice(flag,1); //移除
            dic.Values.splice(flag, 1);  //移除
        }
        return dic;
    }
    else {
        return dic;
    }
}

/*获取Key字符串,用符号拼接*/
function  GetKeyStr(separator,dic)
{
  var keyCount=dic.Keys.length;
  if(keyCount>0)
  {
  return dic.Keys.join(separator);
  }
  else
  {
  return '';
  }
}
/*获取Value字符串,用符号拼接*/
function  GetValueStr(separator,dic)
{
  var keyCount=dic.Keys.length;
  if(keyCount>0)
  {
  return dic.Values.join(separator);
  }
  else
  {
  return '';
  }
}

使用方法:创建一个全局的变量,操作这个全局变量就可以使用了。

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号