JavaScript对数组内容的类型没有要求,可以是大杂烩。
arr.length
arr.length可以直接获取数组的长度
var arr=[1, 2, 3.14, 'Hello', null, true];
arr.length;//返回数组长度6
如果对arr.length进行赋值操作,则会改变数组的长度
var arr=[1, 2, 3.14, 'Hello', null, true];
arr.length=1;//数组为[1]
arr.length=3;//数组为[1,undefined,undifined]
索引越界情况
var arr=[1, 2, 3.14, 'Hello', null, true];
arr[7];//返回undefined
arr[8]=5;
arr;//此时数组变为[1, 2, 3.14, 'Hello', null, true,undefined,5];
数组和字符串不同,数组在创建完成以后可以对其大小进行变更,但是字符串在创建赋值以后长度不可变。
indexOf()
indexOf()方法返回对应值的位置
var arr=[1, 2, 3.14, 'Hello', true];
arr.indexOf(1);//返回0
arr.indexOf('hello');//返回3
arr.indexOf('abc');//返回-1
slice()
slice()用于裁剪数组,并返回一个新的数组。格式:slice(startIndex,endIndex),参数可选。
var arr=[1, 2, 3.14, 'Hello', true];
arr.slice(0,3);//返回[1,2,3],包头不包尾
arr.slice(2);//返回[3.14, 'Hello', true]
var arr1=arr.slice();//返回[1, 2, 3.14, 'Hello', true],通过该操作可以进行复制数组操作
arr1 === arr;//false,这里需要注意下
pop() and push()
pop()将数组的最后一个值删除并返回该值
push()将值添加到数组尾部,返回新数组的长度
var arr=[1, 2];
arr.push('a','b');//返回数组长度4,数组更新[1,2,'a','b']
arr.pop();//返回b,数组更新[1,2,'a']
unshift() and shift()
unshift()方法在数组头部添加元素,shift()在头部删除元素
var arr=[1, 2];
arr.unshift('a','b');//返回数组长度4,数组更新['a','b',1,2]
arr.shitf();//返回a,数组更新['b',1,2]
注意,如果数组已经为空,shift()方法会返回undefined
sort()
对数组进行排序,默认升序
var arr=[3,1,2];
arr.sort();//数组更新为[1,2,3]
reverse()
实现数组反转
var arr=[3,1,2];
arr.reverse();//数组更新为[2,1,3]
splice(index,num,***)
splice()中第一个参数是删除的起始位置,第二个参数是删除的长度,后面是在起始位置插入的元素。
var arr=[3,1,2,4];
arr.splice(1,2,5,6);//返回[1,2],arr更新为[3,5,6,4]
arr.splice(0,2);//返回[3,5],arr更新为[6,4]
arr.splice(1,0,3,2);//arr更新为[6,3,2,4]
concat
concat实现多个数组的拼接,但是不影响原来数组的结构
var arr=[3,1,2,4];
arr.concat(1,2,3,[6,7,8]);//返回新数组[3,1,2,4,1,2,3,6,7,8]
join()
join()方法将数组中每个元素使用指定的字符连接成字符串,并返回连接后的字符串
var arr=[3,1,2,4];
arr.join('-');//返回字符串3-1-2-4
多维数组
var arr=[[3,1,2,4],[7,9,8]];
arr[0][1];// 1