Array对象

1.    Array定义

Array是可以保存任意变量的。也就是说,第一项可以是一个基本类型,第二项就可以是一个引用类型,长度也是根据内容动态增加的

var arr = new Array();

 

当然我们也可以给他一个固定的length

     var arr = new Array(20);

 

可以在创建时,直接向数组里面添加数据

     var arr = new Array(“tang”,”兔子爱吃胡萝卜”,”兔子只吃胡萝卜”);

 

Array可以在不用new的情况下定义

var arr = Array();

 

我们也可以用数组字面量的方式来创建

var arr =[ tang”,”兔子爱吃胡萝卜”,”兔子只吃胡萝卜”];

 

我们可以知道,Array是可以保存任意变量的,所有说下面的定义是合法的

    

var arr = [“兔子爱吃胡萝卜”,{name:”兔子只吃胡萝卜”,age:19},123];

 

2. Array的调用

       和其他的语言相通,Array也是通过索引来调用的

var arr = new Array(“tang”,”兔子爱吃胡萝卜”,”兔子只吃胡萝卜”);

arr[0];  //tang

arr[1];  //兔子爱吃胡萝卜

 

       Array中有属性length,就拿上面的数组来说,他的length就是3;

不过与其他语言不同的是,他的length不只是可读属性,同样也是可写的,我们就可以通过这个特性向数组的末尾添加或者是删除元素

//删除元素
var arr1= new Array(“tang”,”兔子爱吃胡萝卜”,”兔子只吃胡萝卜”);
arr.length = 2;
arr[2];    //undefined
//添加元素
var arr2 = new Array(“tang”,”兔子爱吃胡萝卜”,”兔子只吃胡萝卜”);
arr.length = 4;
arr[3];    //undefined
//可以利用length来向数组末尾添加数据
var arr3 = new Array(“tang”,”兔子爱吃胡萝卜”,”兔子只吃胡萝卜”);
arr[length] = “我就是兔子”;    //向索引3添加一个元素
arr[length] = “兔子”;               //向索引4添加一个元素

 

当我们把一个数组放在超过数组length的地方的时候,数组就会重新计算,并把之间没有定义的地方的值为length

var arr = new Array(“tang”,”兔子爱吃胡萝卜”,”兔子只吃胡萝卜”);
arr[99] = “第99只兔子”;
arr.length;    //100
arr[80];        //undefined

 

3.Array对于栈和队列的使用

Array可以模拟栈和队列的方式

栈(先进后出)

push():进栈

pop():出栈

var arr = [1,2,3,4];

arr.push(5);//自动添加到数组的后面

arr.pop();//5

队列(先进先出)

push():进队

shift(): 出队

var arr = [1,2,3,4];

arr.push(5);//自动添加到数组的后面

arr.shift();//1

 

还有一个叫做unshift,他的作用是,向队列第一项添加一个数据

4. array排序

reversr()和sort()都会返回排序后的数组

reverse();//倒排序
var arr=[1,2,3,4];
arr.reverse();
arr.toString;    //4,3,2,1
sort()//正排序,但是,是按照String类型进行排序的

这里会有一个问题,就是说

如果数组是

var arr = [0,1,5,10,15];

经过sort排序之后,会出现下面的现象

[0,1,10,15,5]

这是因为

5. Array常用方法

join(String):

       join会重写String的方法,用处就是改变数据之间的分隔符

var arr = ["兔子只吃胡萝卜","兔子爱吃胡萝卜","兔子还吃胡萝卜"];
alert(arr.join("||"))

 

  

 

posted @ 2016-10-31 10:43  兔子只吃胡萝卜  阅读(167)  评论(0编辑  收藏  举报