javascript 数组列表

自己收集后学习的代码,希望可以成为博友自己知识的一部分,读懂才 。注释我已经加了,如果再看不懂,我还真没办法
// 定义数组列表
function  ArrayList() 

    
//得到头节点,如果长度为0,头节点处始化
    //content为头节点
    //count为长度
    if(arguments.length==0)
    
{
       
this.content = new Array(); 
       
this.count=0;
    }

    
else
    
{
        
this.content=arguments[0];
        
this.count=this.content.length;
    }


    
//判断是否为正确的索引号
    this.isValidIndex=function(index) 
    

        
return /^d+$/.exec(index) && index>=0 && index<this.count 
    }
 
    
    
//添加节点
    this.add=function(data) 
    

        
this.content[this.count++]=data; 
    }
 
    
    
//得到节点
    this.items=function(index) 
    

        
if(!this.isValidIndex(index))    return null//判断是否为正确索引号

        
return this.content[index]; 
    }
 
    
    
//删除节点
    this.remove =function(index) 
    


        
if(!this.isValidIndex(index))    return false
        
        
if(this.count>1)
        
{
            
for(var i=index;i<this.count;i++)    
            
this.content[i]=this.content[i+1]; 
        }


        
delete this.content[this.count-1]; //清空数据
        
        
this.count--;                       //长度-1
        

    }
 
    
    
//查找节点
    //elem节点值
    this.indexOf=function(elem) 
    

        
for (var i=0;i <this.count;i++
            
if (this.content[i]==elem)    return i; 
             
        
return -1
    }
 
    
    
//后序查找节点
    //elem节点值
    this.lastIndexOf = function(elem)  
    

        
for (var i = this.count-1; i >= 0; i--)         //倒排查找
            if (this.content[i]==elem ) return i; 

        
return -1
    }
 
    
    
//查询该节点是否存在
    this.contains=function(elem) 
    

        
return this.indexOf(elem) >= 0
    }

    
    
//整个数组转成字符串字符串
    this.toString=function()
    
{
        
if(this.count==0
            
return "[]";
            
//:<数组对象>.slice(<始>[, <终>]);返回一个数组,该数组是原数组的子集,始于<始>,终于<终>。如果不给出<终>,则子集一直取到原数组的结尾。
            //join() 用法:<数组对象>.join(<分隔符>);返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔符>置于元素与元素之间。这个方法不影响数组原本的内容。
        return "['"+this.content.slice(0,this.count).join("','")+"']";//slice 方法一直复制到 end 所指定的元素,但是不包括该元素
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值