Array类型
1 创建数组的基本方式:
1.1 使用Array的构造函数
var arr = new Array();
var arr = new Array(2); //创建一个长度为2的数组
var arr = new Array("a","b","c");
1.2 使用数组字面量表示法
var arr = ["a","b","c"];
2 检测数组(instanceof / Array.isArray())
instanceof 假定只有一个执行环境
if(arr instanceof Array){ ... }
ECMAScript新增的Array.isArray()
3 转换方法
toString() :返回由数组中的每个值的字符串形式拼接而成的一个以逗号分隔的字符串。
toLocaleString()
valueOf():返回的是数组
arr.join():可以使用不同的分隔符构建字符串
4 栈方法
栈是一种LIFO(Last-In-First-Out)的数据结构,插入或移除时只发生在栈的顶部。
push():接收任意数量的参数,添加到数组末尾,返回修改后的数组长度。
pop():从数组末尾一处最后一项,减少数组的长度,返回移除的项。
5 队列方法
队列数据结构访问规则是FIFO(First-In-First-Out),队列在列表的末端添加项,从列表的前端移除项。
shift():除去数组中的第一项,并返回该项。
unshift():在数组前端添加任意项,返回新数组的长度。
6 重排序方法
reverse():反转数组项的顺序
sort():在默认情况下按升续排列数组项,但要注意会1,10,2,3这样排序。
function compare(value1,value2){ if(value1 < value2){ return -1; }else if(value1 > value2){ return 1; //第一个值应该位于第二个值之后的情况下返回1 }else{ return 0; } } var arr = [0,6,5,12,11]; arr.sort(compare); alert(arr); //0,5,6,11,12
比较函数也可以这样写
function compare(value1,value2){ return value1-value2; //从小到大排列 // return value2 - value1 ; //从大到小排列 }
7 操作方法
concat():基于当前数组中的所有项创建一个新数组,将接收到的参数添加到数组中,并返回新数组。
splice():
- 删除:指定两个参数。 要删除的第一项的位置 和 要删除的项数,如slice(0,2),从第一项删除,删除两个数
- 插入:指定三个参数。起始位置,0(要删除的个数),要插入的项(多个项可以在后面添加第四、第五个参数),如 splice(2,0,"red","green")。
- 替换:指定三个参数。起始位置,要删除的项数,要插入的任意项,如 splice(2,1,"red","green")
slice():接受一个或两个参数,即起始位置和结束位置,返回选中的项组成的新的数组,不改变原来的数组。
8 位置方法
indexOf()和lastIndexOf()都接收两个参,要查找的项和起始位置,一个是从开始往后找,一个是从结尾往前找。
9 迭代方法
every() some() filter() forEach() map()
10 归并方法
reduce() reduceRight()
迭代所有的项,最终返回一个数