JavaScript中提供了多种数组方法,如下:
- 转换方法—toLocaleString()方法、toString()方法、valueOf()方法
- 栈方法——push()方法、pop()方法
- 队列方法——shift()方法、unshift()方法
- 重排序方法——reverse()方法、sort()方法
- 操作方法——concat()方法、slice()方法、splice()方法
- 位置方法——indexOf()方法、lastIndexOf()方法
- 迭代方法——every()方法、filter()方法、forEach()方法、map()方法、some()方法
- 归并方法——reduce()方法、reduceRight()方法
重排序方法:
①:reverse()方法可以反转数组项的顺序
②:sort()方法对数组进行升序排序,但sort()方法会调用每个数组项的toString()转型方法,所以sort()方法比较的是字符串,所以为了能正确排序,要将一个排序函数作为参数传给sort()方法。
具体例子如下:
//reverse()方法
var values=[0,1,5,10,15];
values.reverse();
console.log(values); //15,10,5,1,0
//无参数sort()方法
values.sort();
console.log(values); //0,1,10,15,5
//将比较函数作为参数传给sort()方法
//此比较函数用于数值类型或者其valueOf()方法会返回数值类型的对象类型
function compare(value1,value2){
return value1-value2; //升序,若要降序则return value2-value1;
}
values.sort(compare);
console.log(values); //0,1,5,10,15
//使用另外一种比较函数一样可以解决,并适用于大多数数据类型
function compare2(value1,value2){
if(value1<value2){
return -1;
}
else if(value1>value2){
return 1;
}
else{
return 0;
}
}
values.sort(compare2);
console.log(values); //0,1,5,10,15
//用字符串数据类型检验
var colors=["red","blue","green","black"];
colors.sort(compare2);
console.log(colors); //black,blue,green,red
colors.sort(compare);
cosole.log(colors); //返回原函数,不进行排序
操作方法:
①:concat()方法用于连接两个或多个数组,不改变现有数组,只是返回被连接数组的一个副本
②:slice()方法能基于当前数组中的一个或多个项创建一个数组,接受一个或两个参数,即返回项的开始跟结束位置
③:splice()方法,(返回数组)使用这种方法的方式有三种,如下:若要删除的项数为0,则返回空数组;若不为0,则返回由被移除项所组成的数组
- 删除:可以删除任意数量的项,只需指定两个参数,要删除的第一项和要删除的项数
- 插入:可以向指定位置插入任意数量的项:只需指定三个参数,起始位置、0(要删除的项数)、要插入的项
- 替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定三个参数,起始位置、要删除的项数和要插入的任意数量的项
具体例子如下:
//删除
var colors=["red","green","blue"];
var removed=colors.splice(0,1); //删除colors数组0的位置的项
console.log(colors); //green,blue
console.log(removed); //red,返回数组只包含一项
//插入
removed=colors.splice(1,0,"yellow","orange"); //从colors数组1的位置插入两项
console.log(colors); //green,yellow,orange,blue
cosole.log(removed); //因为删除项数为0,所以返回空数组
//替换
removed=colors.splice(1,1,"red","purple"); //删除colors数组1的位置的项,并在此插入两项
console.log(colors); //green,red,purple,orange,blue
console.log(removed); //yellow,返回数组只包含一项