• JavaScript中模拟 Dictionary键值对


    原文发表在:http://www.birchlee.com/post/2011/10/19/27.aspx

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

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

    W3C参考地址: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++) {
    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 '';
    }
    }

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

    在此抛砖引玉了

  • 相关阅读:
    监控 SQL Server 的运行状况
    软件开发报价的计算方法
    PHP 正则表达式
    ObjectiveC编程语言简介
    iframe 自适应高度,无限级父框架
    分享iphone开发的好网站,希望大家也能提供一些分享下
    实战WebService I: XMLPRC篇(基于php)
    PHPPRC
    Objective C cocos2D场景切换方式总汇
    NoSQL数据存储引擎
  • 原文地址:https://www.cnblogs.com/birchlee/p/2218267.html
Copyright © 2020-2023  润新知