数组的定义:
new Array(参数,参数):只有一个数字参数时是数组的长度(new可以忽略,但一般尽量写上)
var arr =new Array(); //定义一个空数组
var arr = new Array(10)//创建一个包含10个元素的数组,没有赋值;
var arr2 =new Array("1233",30) //创建一个数组有两个元素
var arr3 =[1,2,3,4,5]; //字面量定义方式
使用数组元素(访问):
arr[0]:表示数组的第一个元素,0是下标,也叫索引;
数组的长度:(length属性)--------> 数组的个数 arr.length
数组的下标 :下标就是索引,即元素的序号,从0开始,下标最大取值是:数组的长度(length-1)
数组赋值
给数组赋值,就是给数组的元素赋值,需要通过给数组的每个元素一一赋值。
arr[0]=20;//让数组的第一个元素的值为20;
以下为通过循环给数组的每个元素赋值,赋成下标的平方。
for(var i=0;i<10;i++){
arr[i]=i*i
}
//以下为通过循环给数组的每个元素赋值,随机数:Math.random()
for(var i=0;i<10;i++){
arr[i]= Math.random();
}
数组的使用:
不能一次使用整个数组,使用数组就是在使用数组的每个元素,因为数组相当于若干个相同类型的变量。
遍历数组:
普通for循环
for ......in 语句用于遍历数组或者对象的属性(快速遍历)
for(var i=0,i<10;i++){
document.write(arr[i]);
}
for(var i in arr){
document.write(arr[i]);
}
数组的添加删除
push() (尾部添加) pop() (尾部删除)
unshift() (前面添加) shift() (前面删除)
数组排序
reverse() (倒序) sort() (升序)
//如果一定要使用sort() 进行排序,可以传递一个函数
function compare(value1,value2){
if(value1<value2){
return -1 ;//返回0和-1 表示不换值
}else if(value1 == value2){
return 0;
}else{
return 1; //返回1,表示换值
}
}
var box=[0,2,3,4,5,7,2];
var reslute=box.sort(compare); //返回升序的数组
concat() :追加数据,创建一个新数组,不改变原数组
var box=[2,3,4,'123','345'];
var box2 =box.concat('567','89967');
alert(box)
alert(box2);
slice():不修改原数组,将原数组中的指定区域数据提取出来
var box =[2,3,4,'绿巨人'];
var box2 =box.slice(1,3) ;//并没有修改原数组,取得是下标区域:[1,3]
splice():截取原数组中指定的数据,会改变原数组
var box =[2,3,4,'绿巨人'];
var box2 =box.splice(1,3) ;//第一个参数代表我要开始截取的下标位置,第二个参数截取的长度,如果只有两个参数,则表示删除操作
插入:如果有3个或以上参数,且第二个参数(长度)为0,则表示插入
var box2 =box.splice(1,0,'绿巨人','绿巨人2');
在下标为1的位置插入:'绿巨人','绿巨人2'
替换:如果有3个或以上参数,且第二个参数(长度)不为0,则表示替换
var box2 =box.splice(1,1,'绿巨人','绿巨人2');
在下标为1的位置替换成:'绿巨人','绿巨人2'
删除:如果只有2个参数,则表示删除指定区域的数据
var box2 =box.splice(0,2,);
删除原数组的部分数据,并返回截取的数据
用数组的元素组成字符串 ------- join()