JS数组的基本用法
JS数组的用法包括创建、取值赋值、添加以及根据下标(包括数值或字符)来移除元素等等,在本文中将为大家详细介绍,感兴趣的朋友可以参考下。
1.创建数组:
//1.1直接创建一个数组对象
var array=new Array();
//1.2直接创建一个数组对象
var array=new Array(size);
//1.3创建数组并为数组赋值
var array=new Array(item1,item2,item3....,itemN);
var array=new Array();
//1.2直接创建一个数组对象
var array=new Array(size);
//1.3创建数组并为数组赋值
var array=new Array(item1,item2,item3....,itemN);
2.对数组取值、赋值
//2.1取得下标为index的元素
var item=array[index];
//2.2为下标为index的元素赋值为valuearray[index]=value;
3.对数组添加元素
//3.1将一个或多个元素加入到数组,返回数组的长度
array.push(item1,item2……itemN);
//3.2将一个或多个元素加入到数组的开始位置,原有元素位置自动后移,返回新数组的长度
array.unshift(item1,item2……itemN);
//3.3从start的位置开始向后删除delCount个元素,然后从start的位置开始插入一个或多个新元素
array.splice(start,delCount,item1,item2……itemN);
array.push(item1,item2……itemN);
//3.2将一个或多个元素加入到数组的开始位置,原有元素位置自动后移,返回新数组的长度
array.unshift(item1,item2……itemN);
//3.3从start的位置开始向后删除delCount个元素,然后从start的位置开始插入一个或多个新元素
array.splice(start,delCount,item1,item2……itemN);
4.删除数组的元素
//4.1删除最后一个元素,并返回该元素
array.pop();
//4.2删除第一个元素,数组元素位置自动前移,返回被删除的元素
array.shift();
//4.3从start的位置开始向后删除delCount个元素,所以通过下标来删除元素可以用这种方式。如:array.splice(0,1);0代表第0个元素,1代表从这个下标开始算起,删除一个元素。
array.splice(start,delCount);
array.pop();
//4.2删除第一个元素,数组元素位置自动前移,返回被删除的元素
array.shift();
//4.3从start的位置开始向后删除delCount个元素,所以通过下标来删除元素可以用这种方式。如:array.splice(0,1);0代表第0个元素,1代表从这个下标开始算起,删除一个元素。
array.splice(start,delCount);
5.数组的截取与合并
//5.1以数组的形式返回数组的一部分,注意不包括end下标的元素,如果省略了end,就会赋值start之后的所有元素
array.slice(start,end);
//5.2将多个数组合并成一个数组
array.concat(array1,array2);
array.slice(start,end);
//5.2将多个数组合并成一个数组
array.concat(array1,array2);
6.数组的排序
var arr=[2,3,1,4,5];
//6.1对arr进行升序排序,结果为12345
arr.sort();
//6.2对arr进行降序排序,结果为54321
//有以下两种方式:
//6.2.1先升序排列,再反转数组
//6.2.2直接使用sort()方法,传入一个判断的匿名函数进行倒序排列
arr.sort(function(p,n){
return n-p;//降序
//return p-n;//升序
});
//6.1对arr进行升序排序,结果为12345
arr.sort();
//6.2对arr进行降序排序,结果为54321
//有以下两种方式:
//6.2.1先升序排列,再反转数组
//6.2.2直接使用sort()方法,传入一个判断的匿名函数进行倒序排列
arr.sort(function(p,n){
return n-p;//降序
//return p-n;//升序
});
7.数组的反转
var array=[3,2,1,4,5];
var newArr=array.reverse();//得到5,4,1,2,3
8. 数组转字符串
var array=[1,2,3,4,5];
var str=array.join('|');//得到1|2|3|4|5
9.使用数组来实现队列和栈
因为队列是先进先出,栈先进后出。如下图所示:
接下来,我们使用数组来实现这两种。
//先来实现队列
var arr=new Array();
arr.push("1");
arr.push("2");
arr.push("3");
arr.push("4");
var count=arr.length;
var res='';
for(var i=0;i<count;i++){
res+=arr.shift()+" length="+ arr.length+"\n";
}
document.write(res);//结果为1 length=3 2 length=2 3 length=1 4 length=0
var arr=new Array();
arr.push("1");
arr.push("2");
arr.push("3");
arr.push("4");
var count=arr.length;
var res='';
for(var i=0;i<count;i++){
res+=arr.shift()+" length="+ arr.length+"\n";
}
document.write(res);//结果为1 length=3 2 length=2 3 length=1 4 length=0
然后实现先进后出的方式:
var arr=new Array();
arr.unshift("1");
arr.unshift("2");
arr.unshift("3");
arr.unshift("4");
var count=arr.length;
var res='';
for(var i=0;i<count;i++){
res+=arr.shift()+" length="+ arr.length+"\n";
}
document.write(res);//结果为4 length=3 3 length=2 2 length=1 1 length=0
arr.unshift("1");
arr.unshift("2");
arr.unshift("3");
arr.unshift("4");
var count=arr.length;
var res='';
for(var i=0;i<count;i++){
res+=arr.shift()+" length="+ arr.length+"\n";
}
document.write(res);//结果为4 length=3 3 length=2 2 length=1 1 length=0