JavaScript 数组方法
存取函数方法
JavaScript提供了一组用来访问数组元素的函数,叫做存取函数,这些函数返回目标数组的某种变体。
查找元素
indexOf()函数用来查找传进来的参数在目标数组中是否存在。如果目标数组包含该参数,就返回该元素在数组中的索引;如果不包含,就返回-1。
lastIndexOf()函数返回相同元素中最后一个元素的索引,如果没找到相同元素,就返回-1。
数组的字符串表示
有两个方法可以将数组转化为字符串:join()和toString()。这两个方法都返回一个包含数组所有元素的字符串,各元素之间用逗号分隔开。
由已有数组创建新数组
concat()方法可以合并多个数组创建一个新数组。
splice()方法截取一个数组的子集创建一个新数组。
可变函数方法
为数组添加元素
push()方法会将一个元素添加到数组末尾。
unshift()方法可以将元素添加在数组的开头。
从数组中删除元素
pop()方法可以删除数组末尾的元素。
shift()方法可以删除数组的第一个元素。
这两种方法都将删掉的元素作为方法的返回值返回,因此可以使用一个变量来保存删除的元素。
从数组中间位置添加和删除元素
使用splice() 方法为数组添加元素,参数如下:
- 起始索引(也就是你希望开始添加元素的地方);
- 需要删除的元素个数(添加元素时该参数设为0);
- 想要添加进数组的元素。
为数组排序
reverse() 方法将数组中元素的顺序进行翻转。例子如下:
var nums = [1,2,3,4,5];
nums.reverse();
print(nums); // 5,4,3,2,1
如果元素是字符串类型,那么数组的可变方法sort() 就非常好使。例子如下:
var names = ["David","Mike","Cynthia","Clayton","Bryan","Raymond"];
names.sort();
print(names); // Bryan,Clayton,Cynthia,David,Mike,Raymond
sort() 方法是按照字典顺序对元素进行排序的,因此它假定元素都是字符串类型,在上一
个例子中,即使元素是数字类型,也被认为是字符串类型。为了让 sort() 方法也能排序数
字类型的元素,可以在调用方法时传入一个大小比较函数,排序时, sort() 方法将会根据
该函数比较数组中两个元素的大小,从而决定整个数组的顺序。
对于数字类型,该函数可以是一个简单的相减操作,从一个数字中减去另外一个数字。如
果结果为负,那么被减数小于减数;如果结果为 0,那么被减数与减数相等;如果结果为
正,那么被减数大于减数。例子如下:
function compare(num1, num2) {
return num1 - num2;
}
var nums = [3,1,2,100,4,200];
nums.sort(compare);
print(nums); // 1,2,3,4,100,200
sort() 函数使用了 compare() 函数对数组按照数字大小进行排序,而不是按照字典顺序。