携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情
JavaScript数组
创建方法
- 空数组 var arr = new Array();
- 指定长度数组
var arr = new Array(Size); - 指定元素数组 var arr = new Array(元素1, 元素2, ..., 元素n);
- 单维数组 var arr = [元素1, 元素2, ..., 元素n];
- 多维数组 var arr = new Array([数组序列1], [数组序列2], [数组序列n]);
基本操作
- 存取数组元素
- 单维数组 : 数组名[下标索引]
- 多维数组 : 数组名[外层数组下标][内层数组下标]
- 特性 : 数组长度是弹性的,可自由伸缩
- 下标类型(数值) : 数组下标从0开始
- 下标类型(非数值) : 转为字符串;生成关联数组;下标将作为对象属性的名字
- 特性 : 数组元素可添加到对象中
- 添加数组 使用"[]"运算符执行一个新下标
- 删除数组 delete 数组名[下标]
- 遍历数组 for (var 数组元素变量 in 数组)
数组属性
- constructor 引用数组对象的构造函数
- length 返回数组的长度
- prototype 通过增加属性和方法扩展数组定义
数组方法
- 添加
- push() 在数组末尾添加数组
- unshift() 在数组头部添加元素
- concat() 合并两个数组
- 删除
- pop() 删除并返回数组的最后一个元素
- shift() 删除并返回数组的第一个元素
- 子数组
- splice() : 向/从数组中添加/删除项目,然后返回被删除的项目.
- splice(要删除的起始下标, 要删除的项数) : 删除任意数量的项
- splice(起始下标,0(不删除任何项), 要插入的项) : 在指定位置插入指定的项
- splice(起始下标, 要删除的项数, 要插入的项) : 替换任意数量的项
- slice(返回项的起始位置, 返回项的结束位置) : 从已有数组中选取部分元素构成新数组
- slice参数特性 : 如果是负数,则用数组长度加上改值确定位置
- slice参数特性 : 起始位置维数组的实际下标
- slice参数特性 : 结束位置的实际下标维结束值减1
- 数组排序
- reverse() : 颠倒数组中元素的顺序
- sort() : 堆字符数组或数字数组进行排序(默认按字符串比较)
- 数组转换
- toString() : 转换维字符串并返回
- toLocaleString() : 转换为本地格式字符串并返回
- join() : 用指定分隔符分割数组并转换为字符串
- 位置方法
- indexOf(要查找的项, 表示查找起点的位置索引) : 从数组的起始位置开始查找
- lastIndexOf(要查找的项, 表示查找起点的位置索引) : 从数组的结束位置开始查找
- 迭代方法
- 接收参数 : 要在每一项上运行的函数;运行该函数的作用域对象
- 传入参数 : 数组项的值item;该项在数组中的位置index;数组对象本身array
- every() : 如果该函数堆每一项都返回true,则返回true
- filter() : 返回值为true的所有数组成员
- forEach() : 无返回值
- map() : 返回每次函数调用的结果数组
- some() : 有任意一项返回true,则返回true
- 缩小方法
- 接收参数 : 每一项上调用的函数;作为缩小基础的初始值
- 传入参数 : 前一个值prev;当前值cur;项的索引index;数组对象array
- reduce() : 从数组开始位置开始遍历
- reduceRight() : 从数组末尾开始遍历