JS高级程序设计学习笔记之数组
- 数组创建的方式
- var str = new Array();放入数字即为设置数组长度
- var str = [];
- 数组的length可读可写
- 监测数组
- Array.isArray()方法确定某个值是不是数组,兼容的浏览器为IE9+、ff4+、sf5+、O10.5+、chrome
- 转换方法
- toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串。
- value Of()方法返回数组。(alert要接收字符串参数,当传给它数组时,会在后台调用toString()方法)
- toLocaleString()创建一个数组值的以逗号分隔的字符串。对每一项调用toLocalString()方法。
- join(),接收一个参数用接收的字符串做分隔符,分割数组为一个字符串,并返回这个字符串。
- 若数组中某一项为null或者undefined,那么该值在以上方法返回的结果中以空字符串表示。
- 栈方法(后进先出)
- push()方法接收任意参数,并将其逐个添加到数组末尾,并返回修改后的数组长度。
- pop()方法从数组末尾移除最后一项,减少length值,返回移除的项。
- 队列方法(先进先出)
- shift()方法,移除数组中的第一项并返回该项,长度减一。
- push()
- unshift(),在数组前端添加任意个项,并返回新的数组长度。
- 重排序方法
- reverse()方法,反转数组顺序。var value =[1,2,3,4];value.reverse();
- sort(),以升序排列数组。sort()方法调用每个数组项的toString()方法,然后比较得到的字符串。Sort()方法接受一个比较函数作为参数,若参数一应位于参数二之前,则返回负数。以此类推
- 操作方法
- concat()方法,复制当前数组,将参数添加到末尾,返回新的数组。
- slice()方法:①只有一个参数时,该方法返回从该参数指定位置到数组末尾的所有项。
②有两个参数时,返回起始位置与结束位置的项,不包括结束的项。该方法不影响原数组。
③若参数中存在负数,用数组长度加上负数决定位置。若起始位置大于结束位置,则返回空数组。
- splice()方法:①删除:参数一:要删除的第一项的位置。参数二:要删除的项数。
②插入:参数一:起始位置。参数二:要删除的项数(0)。参数三:要插入的项(可以插入多各项,作为更多的参数)
③替换:参数一:起始位置。参数二:要删除的项数(0)。参数三:要插入的项(可以插入多各项,作为更多的参数)
该方法始终返回一个数组,数组包含从原始数组中删除的项,若未删除,则为空数组。
- 位置方法:
- indexOf():参数一:要查找的项。参数二:查找的起点位置(要求查找的项必须严格相等)。从头查找
- lastIndexOf():参数一:要查找的项。参数二:查找的起点位置(要求查找的项必须严格相等)。从末尾查找
- 迭代方法:参数一:要在每一项上运行的函数(该函数有三个参数(数组项的值,该项在数组中的位置,数组本身))
参数二:运行该函数的作用域对象(可选)
①every()方法,对数组的每一项运行该函数,若函数对每一项都返回true,则方法返回true。
②filter()方法,对数组的每一项运行该函数,将返回true的每一项组成数组并返回。
③forEach()方法,对数组每一项运行该函数,无返回值。
④map()方法,对数组的每一项运行该函数,返回每次函数调用的结果组成的数组。
⑤some()方法,对数组的每一项运行该函数,若函数对任一项返回true,6则返回true。
- 归并方法:迭代数组所有的项,然后构建一个最终返回的值。
接收两个参数(每一项上调用的函数(前一个值,当前值,项的索引,数组),作为归并基础的初始值(可选))。这个函数返回的任何值都会作为第一个参数自动传给下一项。
reduce()从头迭代。
reduceRight()从尾迭代
高程3—P97页