JavaScript学习中,整理了一些数组的知识,希望对大家有所帮助,也请大神多多指教!
一、数组的声明
1、通过new创建数组,传入任意参数
2、省略new创建数组
3、通过数组常量进行赋值
以上三种形式分别为:
var arr = new Array(100,true,"hello");
var arr = Array(100,true,"hello");
var arr = [100,true,"hello"];
同时,需要注意,1、2两种方法,传入参数只有一个,而且是数字的时候,是声明一个长度为10的数组;而3方法当传入参数只有一个,而且是数字的时候,是只有一个元素的数组,元素为该数字。
二、数组的遍历
数组名.length 返回值为数组元素的个数
1、for循环
var arr = [100,true,"hello"];
for(var i = 0; i < arr.length; i++){
document.write(arr[i] + "</br>")
}
2、for…in遍历
var arr = [10,20,30,40,50];
//在页面上分别将每一个数输出
for(var i in arr){
document.write(arr[i] + "<br/>");
}
三、数组的方法
1、栈结构
结构:从同一头进,从同一头出
特点:先进后出
数组的两个方法形成栈结构:
push方法格式:数组.push(形参1,形参2……)
功能:给数组的末尾添加元素
返回值:插完元素以后数组的长度
var arr = ["北京","上海","广州"];
var res = arr.push("深圳","西安");
alert(arr); //输出北京,上海,广州,深圳,西安
alert(res); //输出5
pop方法格式:数组.pop()
参数:没有参数
返回值:取下的一个元素
功能:从数组末尾取下的一个元素
var arr = ["北京","上海","广州"];
var res = arr.pop();
alert(res);//广州
alert(arr);//北京,上海
2、队列结构
结构:从末尾进,从头部出
特点:先进先出
数组的两个方法形成队列结构:
shift方法:
格式:数组.shift()
参数:没有参数
功能:从数组的头部取下一个元素
返回值:取下的元素
var arr = ["北京","上海","天津"];
var res = arr.shift();
alert(res);//输出北京
alert(arr);//输出上海,天津
unshift方法:
格式:数组.unshift(参数1,参数2……)
功能:从数组的头部插入元素
返回值:插完元素以后数组的长度
var arr = ["北京","上海","广州"];
var res = arr.unshift("天津");
alert(res);//4
alert(arr);//北京,上海,广州,天津
3、contact方法
作用:
a、拷贝原数组,生成新数组
b、合并数组
格式:数组名.contact(数组或数据等)
返回值:新数组
var arr1 = [10,20,30];
var arr2 = [50,60,70];
var newArr = arr1.concat(arr2,"hello",true); alert(newArr);//10,20,30,50,60,70,hello,true
alert(newArr.length);//8
alert(arr1);//10,20,30
由此可见,contact方法并不改变原数组
4、slice方法
作用:可以基于当前数组获取指定区域的元素
[start,end]在该区域内提取出元素生成新数组
返回值:新生成的数组,原数组不变
var arr = [10,20,30,40,50,60];
var newArr = arr.slice(1,4);
alert(newArr);//20,30,40
alert(arr);//10,20,30,40,50,60
5、splice方法
格式:数组名.splice(start,length,数据……)
start:开始截取的位置
length:截取的个数
a、添加
返回值:截取下的元素组成的数组
var arr = [10,20,30,40,50];
var newArr = arr.splice(2,0,"hello","world");//截取0个元素,达到添加元素的效果
alert(arr);//10,20,hello,world,30,40,50
alert(newArr);//空数组
b、删除
返回值:截取下的元素组成的数组
var arr = [10,20,30,40];
//从第一个元素开始删除两个元素
var res = arr.splice(1,2); alert(arr);//10,40
alert(res);//20,30
c、修改(先删除后增加,在视觉上形成了修改元素的效果)
var arr = [10,20,30,40];
var newArr = arr.splice(2,1,"hello");
alert(arr);//10,20,hello,40
6、join方法
格式:数组名.join
作用:将数组中的元素,用传入的拼接符,拼接成一个字符串
返回值:拼接的字符串
var arr = [10,20,30,40];
var str = arr.join("==");
alert(str);// 10==20==30==40
alert(arr);// 10,20,30,40
7、reverse方法
格式:数组名.reverse
作用:逆序
var arr = [true,"hello",100];
arr.reverse();
alert(arr);
8、sort方法
格式:数组名.sort
作用:排序
//注:按字符串大小比较
var arr = [30,10,40,20];
arr.sort();
alert(arr);
如果想要数值从小到大排序
var arr = [30,10,50,20,60];
arr.sort(function(value1, value2){
return value1 - value2;
});
alert(arr);//10,20,30,50,60
若从大到小比较,秩序将上述代码中的value1 - value2改为value2 - value1即可。