创建和使用复合数组

Posted Beat Yourself

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建和使用复合数组相关的知识,希望对你有一定的参考价值。

一、使用Object对象创建复合数组

var person=new Object();
person.name="soul";
person.age="21";

二、使用Array对象创建复合数组

var person=new Array();
person["name"]="soul";
person["age"]=21;

三、遍历复合数组

  1、for...in  //返回键

  2、for each...in  //返回值

四、哈希表

  1、代码实现如下:

/**
 * 
 * @authors Soul (2461358597@qq.com)
 * @date    2016-05-23 10:23:49
 * @version 0.0.1
 */

/**
*
* @description  实现哈希表
* @param key  键
* @param value  值
*/

function hashTable(){
    this._hash={};
    this._count=0;

    /**
    *
    * @description  设置或更新键值
    * @return  boolean类型,true/false
    */
    this.put=function(key,value){

        //若键值不存在则键值数量+1
        if(!this._hash.hasOwnProperty(key)){
            this._count++;
        }
        //设置新的或覆盖旧的键值  不会有重复的键值存在
        this._hash[key]=value;    
        return true;    
    };
    /**
    *
    * @description  获取键指定的值
    * @return  value
    */
    this.get=function(key){
        if(this.containsKey(key))
            return this._hash[key];
    };
    /**
    *
    * @description  获取元素个数
    * @return  _count
    */
    this.size=function(){
        return this._count;
    };
    /**
    *
    * @description  检查是否为空
    * @return  boolean
    */
    this.isEmpty=function(){
        if(this._count==0){
            return true;
        }else{
            return false;
        }
    };
    /**
    *
    * @description  检查是否包含指定的键
    * @param key  键
    * @return  boolean
    */
    this.containsKey=function(key){
        return this._hash.hasOwnProperty(key);
    };
    /**
    *
    * @description  检查是否包含指定的值
    * @param value  值
    * @return  Boolean
    */
    this.containsValue=function(value){
        for(var _key in this._hash){
            if(this._hash[_key]==value){
                return true;
            }
            return false;
        }
    };
    /**
    *
    * @description  删除一组键值
    * @param key  键
    * @return  Boolean
    */
    this.remove=function(key){
        if(this.containsKey(key)){
            delete this._hash[key];
            this.count--;
            return true;
        }
        return false;
    };
    /**
    *
    * @description  清空所有键值
    * @return Boolean
    */
    this.clear=function(){
        this._hash={};
        this._count=0;
        return true;
    };
    /**
    *
    * @description  获取key集合,以数组的形式返回
    * @return Array
    */
    this.keySet=function(){
        var arrKeySet=new Array();
        var index=0;
        for(var _key in this._hash){
            arrKeySet[index++]=_key;
        }
        return (arrKeySet.length===0)?null:arrKeySet;
    };
    /**
    *
    * @description  获取value集合,以数组的形式返回
    * @return  Array
    *
    */
    this.valueSet=function(){
        var arrValueSet=new Array();
        var index=0;
        for(var _key in this._hash){
            arrValueSet[index++]=this._hash[_key];
        }
        return (arrValueSet.length==0)?null:arrValueSet;
    }
}

  2、测试如下:

  

以上是关于创建和使用复合数组的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用相同的布局动态创建片段并向它们显示数据?

复合类型数组上的 SUM 和 GROUP BY

在android中动态创建选项卡并使用传入的参数加载片段

数组字段上的唯一复合索引

如何创建片段以重复变量编号中的代码行

JavaScript 代码片段