javascript 数组常见操作

定义一个数组:

var arr = [1, 2, 'Hi', null, true];  

获取数组长度:

arr.length;<span style="white-space:pre">	</span>//5


通过索引获取数组指定位置的值

arr[0]; //返回1


注意,直接更改length的值会改变数组的长度

var arr = [1, 2, 3];
arr.length;		//3
arr.length = 6;
arr;	                //arr变为[1, 2, 3, undefined, undefined, undefined]
arr.length = 2;
arr;	                //arr变为[1, 2];


通过索引修改元素的值

var arr = [1, 2, 3];
arr[1] = 99;
arr;	<span style="white-space:pre">		</span>//arr变为[1, 99, 3]


注意,通过索引赋值时,索引超过了范围,会引起Array大小的变化

var arr = [1, 2, 3];
arr[4] = 6;
arr;	//arr变为[1, 2, 3, undefined, 6]

array常见方法


indexOf

与String类似,Array可以通过indexOf()来搜索一个指定元素的位置

var arr = [10, 20, '30', 'xyz'];
arr.indexOf(10);	//元素10的索引为0
arr.indexOf(20);	//元素20的索引为1
arr.indexOf(30);	//元素30没有找到,返回-1
arr.indexOf('30');	//元素'30'的索引为2


slice

slice()就是对应String的subString()版本,它截取Array的部分元素,然后返回一个新的Array

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3);	//从索引0开始,到索引3结束,但不包括3:['A', 'B', 'C']
arr.slice(3);		//从索引3开始到结束:['D', 'E', 'F', 'G']


如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,可以很容易地复制一个Array

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var aCopy = arr.slice();
aCopy;	<span style="white-space:pre">					</span>//['A', 'B', 'C', 'D', 'E', 'F', 'G']
aCopy === arr;	<span style="white-space:pre">				</span>//false


push和pop

push()向Array的末尾添加若干元素,pop()则把Array的最后一个删除掉

var arr = [1, 2];
arr.push('A', 'B');		//返回Array新的长度:4
arr;					//[1, 2, 'A', 'B']
arr.pop();				//pop()返回'B'
arr;					//[1, 2, 'A']
arr.pop();
arr.pop();
arr.pop();
arr;					//[]
arr.pop();				//空数组继续pop不会报错,而是返回undefined
arr;					//[]

unshift和shift

如果要往Array的头部添加如果元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉

var arr = [1, 2];
arr.unshift('A', 'B');	//返回Array新的长度:4
arr;					//['A', 'B', 1, 2];
arr.shift();			//'A'
arr;					//['B', 1, 2]
arr.shift();
arr.shift();
arr.shift();
arr;					//[]
arr.shift();			//空数组继续shift不会报错,而是返回undefined
arr;					//[]


sort

sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序:

var arr = ['B', 'C', 'A'];
arr.sort();
arr;	//['A', 'B', 'C']

注意,可传入自定义函数改变排序方式


reverse

reverse()把整个Array的元素位置反转:

var arr = ['one', 'two', 'three'];
arr.reverse();
arr;	//['three', 'two', 'one']

splice(注意不要与slice搞混)

splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后从该位置添加若干元素

var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
//从索引2开始删除3个元素,然后再添加两个元素
arr.splice(2, 3, 'Google', 'Facebook');			//返回删除的元素['Yahoo', 'AOL', Excite']
arr;											//['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
//只删除,不添加
arr.splice(2, 2);	//['Google', 'Facebook']
arr;				//['Microsoft', 'Apple', 'Oracle']
//只添加,不删除
arr.splice(2, 0, 'Google', 'Facebook');	//返回[],因为没有删除任何元素
arr;	//['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

contact

contact()方法把当前的Array和另一个Array连接起来,并返回一个新的Array

var arr = ['A', 'B', 'C'];
var added = arr.concat([1, 2, 3]);
added;		//['A', 'B', 'C', 1, 2, 3]
arr;		//['A', 'B', 'C']


join

join()方法是一个非常使用的方法,它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串:

var arr = ['A', 'B', 'C', 1, 2, 3];
arr.join('-');	//'A-B-C-1-2-3'
如果Array的元素不是字符串,将自动转换成字符串后再连接












                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值