引用对象- Array类型
创建数组:
1. 使用 Array 构造函数
var arrays = new Array() 或 Array()
new Array(3) // 数组length = 3 ;
new Array('a','b','c') // 包含3个值得数组
2. 数组字面量(array literal)表示法
var arrays = [1,2,3] 或 ['1','2','3']
3. Array 构造函数还有两个 ES6 新增的用于创建数组的静态方法:from()和 of()。
from()用于将 类数组结构转换为数组实例,而 of()用于将一组参数转换为数组实例。
数组空位
使用数组字面量初始化数组时,可以使用一串逗号来创建空位(hole)。
数组索引
要取得或设置数组的值,需要使用中括号并提供相应值的数字索引
arrays[index] // index=0,1,2...
数组长度
arrays.length (不是只读的),arrays.length=2(只有2个值,超出为undefined),arrays.length='d'(在数组末尾添加‘d’)
检测数组
1.instanceof 操作符
value instanceof Attay
2.Array.isArray()方法
Array.isArray(value)
转换方法
1. arrays.toSring() : ['a','b','c']==> a,b,c
2. arrays.valueOf() : ['a','b','c']==> a,b,c
3. toLocaleString()
数组栈方法
访问栈数据结构-后进先出
1.在数组末尾插入,并返回修改后数组长度
arrays.push('d')
2.移除数组最后一项,并返回移除的项
arrays.pop()
数组队列方法
访问队列数据结构-先进先出
1.获取数组第一项并将其移除,数组长度减一
var item = arrays.shift()
2.在数组前端添加任意个项并返回数组长度
arrays.unshift('d','f')
数组重排序方法
1.reverse(),直接反转数组项的顺序
arrays.reverse()
2.sort()
arrays.sort()
默认情况下按升序排列数组项(调用每个数组项的toString()转型为字符串进行比较确定排序。)需要定义一个比较函数作为参数传给sort,function compare ==> arrays.sort(compare)。
数组操作方法:
1.【合并】 concat()方法基于当前数组中的所有项创建一个新数组。
arrays.coucat('a','b',['c','d']) // ['a','b','c','d']
2.【截取】 slice()方法基于当前数组中的一个或多个项创建一个新数组。
arrays.slice(1) // 截取原数组的第1位到末尾;
arrays.slice(1,4) // 截取原数组的第1位到第3位。
arrays.slice(-2,-1) //(-2+arrays.lenght, -1+arrays.lenght),负数参数要加上数组长度。
3.splice()方法主要用作向数组的中部插入项,返回一个包含从原始数组中删除的项的数组(如没有删除则为空数组)
[splice-删除]:可以删除任意数量的项,传2个参数(起始位置,删除的项数)
arrays.splice(2,3) // 从第2位开始删除3项
[splice-插入]:向指定位置插入任意数量的项,传3个参数(起始位置,0,要插入的一个或多个项),
arrays.splice(1,0,'c','d') // 从第1位开始插入'c','d'。
[splice-替换]:向指定位置插入任意数量的项并且同时删除任意数量的项,传3个参数(起始位置,要删除的项数,要插入的任意数量的项)。
arrays.splice(2,1,'c','d') // 从第2位开始删除1项,再从第2位插入'c','d'。
数组位置方法:
1.indexOf() 从数组的开头(0)开始向后查找; 2.lastIndexOf()从数组末尾往前查找。 【共】传参:(查找的项,可选的起始位置),都返回要查找项在数组中的位置,如不存在则返回-1,第一个参数和数组每一项使用=== 全等于进行比较。
数组迭代方法
ES5定义了5个迭代方法,都传2个参数(要在每一项上运行的函数,可选的该函数的作用域对象--影响this的值)。传入这些方法的函数会接收3个参数(数组项的值,该项在数组中的位置,数组对象本身),var a=arrays.迭代方法(function(item,index,array){ })。都不会修改该数组中的包含的值。
- 1.
every(): 对数组中的每一项运行指定函数,如果罚函数队每一项都返回true(所有条件成立才行),则返回true。 - 2.
filter(): 对数组中的每一项运行指定函数,返回该函数会返回true的项组成的数组。 - 3.
forEach(): 对数组中的每一项运行指定函数,无返回值。 - 4.
map(): 对数组中的每一项运行指定函数,返回每次函数调用的结果组成的数组。 - 5.
some(): 对数组中的每一项运行指定函数,如果该函数对任一项返回true(至少一个条件成立即可),则返回true。
数组缩小方法
ES5中2个方法,都会迭代数组的所有项,然后构建一个最终返回的值。 都可以接受2个参数(在每一项调用的函数function,可选的所辖基础的初始值),第一个参数function接收4个参数(前一个值,当前值,项的索引,数组对象)==>var a=arrays.缩小方法(function(prev,cur,index,array){ })
- 1.
reduce(): 从数组第一项开始,逐个遍历到最后。 - 2.
refuceRight(): 从数组的最后一项开始,向前遍历到第一项。