一、与其他语言数据的比较
相同点:有序列表
不同点:js的数组的每一项可以保存任何类型的数据;数组的大小是可以动态调整的
二、数组创建的两种方法
1) var colors = new Array();//创建一个空数组
var colors = new Array(3);//创建一个包含3项的数组
var colors = new Array("red","green","blue");//创建一个包含3个字符串的数组
2)var names = [];
var names = ["red","green","blue"];//names[2]
三、数组的length属性
1) 检测数组的项数
2)可设置
var names = ["red","green","blue"];
names.length = 4;
alert(names[3]);//undefined
#######################
names.length = 2;
alert(names[2]);//undefined
#######################
names[names.length]="black";
alert(names);//red,green,blue,black
#######################
names[99]="yellow";
alert(names.length);//100
四、数组方法
1) 检测数组方法
Array.isArray()
2)转换方法
toString():返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串;
valueOf():返回的还是数组,返回数值类型的对象类型
join():接受一个参数,已这个字符来连接数组成一个字符串
3)栈方法(LIFO)先进后出
push():接收任意数量的参数,逐个添加到数组的末尾,返回修改后数组的长度
pop():从数组末尾移除最后一项,返回移除的项
4)队列方法(FIFO)先进先出
(1)push():同上
shift(): 移除数组的第一项,并返回该项
(2)unshift():在数组前端添加任意个项,并返回新数组长度
pop():同上
5)重排序方法
reverse():反转数组项
sort():默认按升序排列,调用每个数组项的toString()方法,然后比较得到的字符串,sort()可以接收一个比较参数,返回的还是数组
6)操作方法
(1) concat():先创建当前数组的一个副本,接收的参数是一个或多个数组,将这些数组的每一项都添加到结果数组中
var names = ["red","green","blue"];
var names1 = names.concat("brown",["black","dede"]);
(2) slice():
var names = ["red","green","blue"];
var names1 = names.slice(1);//green,blue
var names2 = names.slice(1,2);//green,blue
删除:slice(0,2)
插入:slice(2,0,"red","frr");//从位置2开始插入
替换:slice(2,1,"red","frr")//删除位置2的项,然后再插入两项
7)位置方法(都是可以接收两个参数,要查找的项和(可选)表示查找起点位置的索引)
indexOf():从数组的开头向后查,返回要查找的项在数组中的位置
lastIndexOf():从数组的末尾向前查,返回要查找的项在数组中的位置
8)迭代方法
every():对数组的每一项运行给定函数,如果该函数对每一项给返回true,则返回true
filter():返回由给定函数过滤后的数组
forEach():只是对数组的每一项运行给定函数,没有返回值
map():对数组的每一项运行给定函数,返回函数运行结果组成的数组
some():对数组的每一项运行给定函数,如果该函数对某一项返回true,则返回true
9)归并方法
reduce():这里和python的list方法特别像,自己的理解,会根据每一项上调用的函数,迭代数组的每一项,然后返回一个最后的结果
reduceRight():同reduce,只是从数组的最后一项开始迭代