数组的几种用法:
var arr=[];
var arr=nwe Array();
var a=[1,2,3];
var a=new Array(1,2,3);
var a=new Array(30);//这个是设立一个数组然后里面有29个位置。
如何访问数组呢?
就是通过下标,下标是指元素储存的位置,一般是从0开始,连续不重复。
假如是这个数组var a=[1,2,3];
那么console.log(a[0]);这输出的就是数组中1这个元素。
那么怎么修改数组的中的元素呢?
也是通过下标来修改的,a[0]="马化腾";那么现在上面那个数组就变成了
var a=["马化腾",2,3];
由这个我们也能得到一个结论,那就是数组是不限制元素的储存类型的。
并且数组也不限制下标的越界,如
a[5]=80;
那么就会在下标为5的位置生成一个元素80.
还有就是数组的.length属性,这个属性记录了理论上的元素个数,永远是最后一个元素的下标+1.
如何获取最后一个元素 倒数第n个元素 arr[arr.length-n]
console.log(array[array.length-1]);
如何在数组的末尾追加新元素
array[array.length] = "Lily";
console.dir(array);
删掉数组中的某个元素
array[1] = "";
console.dir(array)
数组的最后一个元素
array.length--;
console.dir(array);
删掉数组末尾的n个元素
array.length = array.length-2;
console.dir(array);
数组的遍历:
var a=[1,2,3,4]
for(var i=0;i<a.length;i++){
console.log(a[i]);
}这就是循环输入shuzu 里面的值,从下标0到最后一个下标,因为.length永远是比最后一个下标大1,所以我们设置小于i<a.length就行.
数组的API
转字符串
1.String(arr) : 将数组中每个元素都转化为字符串,再用逗号链接.
var provs = ["辽宁省","吉林省",'湖北省','重庆市','天津市'];
var before = String(provs);
那么这里输出来之后就是字符串。
provs[provs.length] = "湖南省";
这个prove.length就是在最后一个元素后在加一个元素;
所以现在就是 var provs = ["辽宁省","吉林省",'湖北省','重庆市','天津市','湖南省'];
还有一种方法:arr.join("自定义的连接符"):将数组中的每个元素转化为字符串,可以用自定义连接符。
这种的话与上一种相比就能不止使用逗号隔开,用标签奇迹其他符号隔开也行。
arr.join("");像这样不添加符号就能无缝连接。
拼接
newArr = arr1.concat(value1,value2,arr2....); 将value1,value2,arr2,拼接到arr1的结尾(注意是拼接到结尾)。
无权修改原数组,只能返回新数组,必须使用变量接受拼接后返回的值
concat会打散参数中的子数组为单个元素,单个拼接。
选取
选取 获得原数组中制定位置到结束位置之间的所有元素,组成临时子数组
arr.slice(stati,endi) 选取stati位置开始到endi位置的所有元素,组成临时子数组
需要注意的是不包括endi这个元素,只选取到endi前面一个。slice无权修改原数组,只是赋值原数组中的元素组成新数组。
删除
arr.splice(starti,n)删除arr中starti开始的n个元素
修改了原数组
返回值:被删除的元素组成的临时子数组 假删除
支持负数参数 .length - n
插入
arr.splice(starti,0,value1,value2/arr2...)将value1,value2等插入到arr中starti的位置
starti表示位置,0表示一个都不删除 ,原位置的值,向后顺移
将参数数组的元素单个存储到数组中去
.替换
arr.splice(starti,n,value1,value2....) 先删除arr中starti位置开始的n个元素
再在strati位置插入 value1,value2...
删除的元素个数和插入的新元素不必一致