1. Array 对象属性:
-- constructor: 返回对 创建此对象的数组函数的引用
-- length: 设置或返回数组中元素的数目(length属性不是只读的)
-- prototype : 向对象添加属性和方法
2. Array 对象方法
-- 栈方法:
push() 可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度。
pop() 从数组末尾移除最后一项并返回移除的项
-- 队列方法:
unshift() 在数组前端前端添加任意个项并返回新数组的长度。
shift() 移除数组中的第一个项,并返回该项,同时将数组长度减1.
-- 重排序方法
reverse() 反转数组项的顺序
sort() 排序(默认为升序),会调用每个数组项的 toString()方法,然后比较得到的字符串(sort()方法可以接收一个比较函数做参数)。
-- 操作方法
concat() 基于当前数组中的所有项创建一个新数组,并将接收的参数添加到这个新数组的末尾,最后返回新构建的数组。
如果参数是数组,会将数组中的每一项都添加到结果数组中。(不改变原数组)
slice() 可以接收一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下,返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,返回起始和结束位置之间的项 --- 但是不包括结束位置的项。slice()不会改变原数组。
splice() 可以执行删除、插入、替换操作。 删除: 两个参数,表示要删除的第一项的位置和要删除的项数。插入: 三个参数起始位置、0(要删除的项数)、要插入的项。如果要插入多个项,可以在传入第四、第五,以至任意多个项。 替换: 可以向指定位置插入任意数量的项并删除任意数量的项。接收三个参数: 起始位置、要删除的项数、和要插入的任意数量的项。
splice() 始终返回一个数组,包含从原数组中删除的项,如果没有删除返回空数组
-- 位置方法
indexOf() 、lastIndexOf(),都接收两个参数: 要查找的项和表示查找起点位置的索引(可选)都返回要查找项在数组中的位置。 indexOf()从数组开头往后找,lastIndexOf()从数组末尾开始向前查找。
-- 迭代方法,共有5个,每个方法都接收两个参数: 要在每一项上运行的函数和(可选)运行该函数的作用域对象--- 影响 this的值。传入这些方法中的函数会接受三个参数:数组项的值(value)、该项在数组中的位置(index)、数组对象本身。
every() 对数组中的每一项运行给定函数,如果该函数对数组的每一项都返回true,则返回true
filter() 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
forEach() 对数组中的每一项运行给定函数。这个方法没有返回值。
map() 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。(这个数组中的每一项都是在原始数组中的对应项上运行传入函数的结果)
some() 对数组中的每一项运行给定函数,如果该函数对数组的某一项返回true,则返回true
-- 归并方法
reduce() 、 reduceRight(): 迭代数组中所有项,然后构建一个最终返回的值。都接收两个参数: 一个在每个项上调用的函数和(可选)最为归并基础的初始值。传入的函数接收四个参数: 前一个值、当前值、项的索引、数组对象。
3. join(separator) 方法 将数组元素组成一个字符串,并以separator作为分隔符,省略的话则默认用逗号为分隔符。
该方法只接收一个参数: 分隔符。
eg:
var arr = [1,2,3];
console.log(arr.join());// 1,2,3
console.log(arr.join("-")); // 1-2-3
console.log(arr); // [1, 2, 3](原数组不变)