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("||"))