JavaScript总结之数组操作(二)
JavaScript的数组Array可以包含任何数据类型,并通过索引来访问每个元素。例如要获得数组Array的长度,可以直接访问数组Array的length属性:
var arr = [1, 6, true, null, 9, 'hello']; arr.length; //返回6
若直接给数组Array的length赋予一个新的值会导致数组Array大小的变化:
var arr = [1, 6, 'hello', null]; arr.length; //返回4 arr.length=6; arr; //arr变为[1, 6, 'hello', null, undefined, undefined] arr.length=3; arr; //arr变为[1, 6, 'hello']
若数组Array通过索引把对应的元素修改成新的值(包括索引超过了范围),数组Array也会发生变化:
var arr = [1, 6, 'hello', null]; arr[1] = 99; arr; //arr变为[1, 99, 'hello', null] arr[5] = true; arr; //arr变为[1, 99, 'hello', null, undefined, true]
与字符串一样,JavaScript也为数组操作提供了一些函数方法。
indexOf() 与String的类似,搜索一个指定的元素的位置:
var arr = [1, 6, 'hello', null]; arr.indexOf(null); //返回3 arr.indexOf(6); //返回1 arr.indexOf('6'); //没有找到元素'6',返回-1
slice() 对应String的substring() ,截取数组Array部分元素,返回一个新的数组Array:
var arr = [1, 6, 'hello', null]; arr.slice(0, 2); //返回[1, 6] arr.slice(3); //返回[null] arr.slice(); //返回[1, 6, 'hello', null]
push() 往数组Array的末尾添加若干元素,pop() 则把数组Array的最后一个元素删除掉:
var arr = [1, 6, 'hello', null]; arr.push(99, 'A'); arr; //arr变为[1, 6, 'hello, null, 99, 'A'] arr.pop(); arr; //arr变为[1, 6, 'hello, null, 99]
unshift() 往数组Array的头部添加若干元素,shift() 则把数组Array的第一个元素删掉:
var arr = [1, 6, 'hello', null]; arr.unshift(99, 'A'); arr; //arr变为[99, 'A', 1, 6, 'hello, null] arr.shift(); arr; //arr变为['A', 1, 6, 'hello, null]
sort() 是对数组Array的当前元素进行排序,而reverse() 则是颠倒数组Array中元素的顺序:
var arr=[1, 'C', 'A', 9]; arr.sort(); //返回[1, 9, "A", "C"] arr.reverse(); //返回["C", "A", 9, 1]
splice() 方法是修改数组Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:
var arr = [1, 6, 'hello', null]; //从索引1开始删除2个元素,然后再添加2个元素 arr.splice(1, 2, 'A', 99); //返回删除的2个元素[6, 'hello'] arr; //arr变为[1, 'A', 99, null] arr.splice(2, 1); //返回从索引2开始删除的1个元素[99] arr; //arr变为[1, 'A', null]