JavaScript数组简述
2016-05-25 18:40
501 查看
数组每一项可以保存任何类型的数据,大小是可以动态调整的,随数据添加自动增长length,当然你非要自己增长length也是可以的,不过你可能就会面临n个undefined的骚扰了。
构造:Array构造函数:new Array() new可省略 括号内为length或content
字面量法:[] 括号内为content,类型任意
二维数组:[[]] 1.直接字面量构造 2.直接令一维数组元素为数组
稀疏数组:length与数组元素个数不同 数组中间元素为全部定义,即有部分元素为undefined
方法:
检测
Array.isArray() 参数为你要检测的数组,返回值为boolean
var a = [];
Array.isArray(a) // true
转换
toString() toLocaleString() valueOf() 默认以逗号为分隔符的形式返回字符串
join()接收参数为用作分隔符的字符串,返回包含所有数组项的字符串 默认参数逗号
栈队列
push()数组末尾添加任意项
返回长度 unshift()数组前端添加任意项 返回长度
pop()数组末尾移除一项 返回移除项 shift()数组第一项移除
返回移除项
排序
reverse() 反转指定数组顺序
sort(function(a,b){ return a-b; })升序排列 (参数分别为数组前一项和后一项值)
操作
contact() 为数组添加任意项,即将参数与this连接起来 (参数可以为任意单独项,同时可以为数组)
slice()创建新数组 参数为起始位置和终止位置(不包括) 不会修改原函数
splice()向数组中部插入任意项 参数为起始位置,作用项数(可以为零即不改变原数组项),要插入项(可选) 返回删除项数组 会修改原函数
位置
indexOf() lastIndexOf() 从开头或末尾查找 返回位置即索引 参数为要查找的项和起点位置
迭代 every() some() 对所有项进行函数,返回一个布尔值 every的结果为每项迭代的并 some为每项迭代的或
map()对所有项进行函数 返回新数组 参数为 当前遍历项 索引 整个数组
filter()运行给定函数筛选 返回新数组
forEach()与map相同 但无返回值
归并
reduce() reduceRight() 从开头或末尾迭代所有项 参数为函数和初始值
函数参数为 上一项值 当前值 索引值 整个数组对象
返回值由作为参数的函数的return决定
var a = [1,2,3]
a.reduce(function(pre, item, index, arr){
return pre + item
})
// 6
另外ES6新增许多更强大的数组方法,如Array.from() Array.from includes copyWithin find fill等等,详情请看ES6揭秘之数组
构造:Array构造函数:new Array() new可省略 括号内为length或content
字面量法:[] 括号内为content,类型任意
二维数组:[[]] 1.直接字面量构造 2.直接令一维数组元素为数组
稀疏数组:length与数组元素个数不同 数组中间元素为全部定义,即有部分元素为undefined
方法:
检测
Array.isArray() 参数为你要检测的数组,返回值为boolean
var a = [];
Array.isArray(a) // true
转换
toString() toLocaleString() valueOf() 默认以逗号为分隔符的形式返回字符串
join()接收参数为用作分隔符的字符串,返回包含所有数组项的字符串 默认参数逗号
栈队列
push()数组末尾添加任意项
返回长度 unshift()数组前端添加任意项 返回长度
pop()数组末尾移除一项 返回移除项 shift()数组第一项移除
返回移除项
var a = [1,2,3,4]; a.push(5) // 5 a.unshift(-1, 0) // 7 a.pop() // 5 a.shift() // -1
排序
reverse() 反转指定数组顺序
sort(function(a,b){ return a-b; })升序排列 (参数分别为数组前一项和后一项值)
var a = [1,4,6,3,2]; a.sort(function(a, b){ return a-b }) // [1, 2, 3, 4, 6] a.sort(function(a, b){ return b - a }) // [6, 4, 3, 2, 1]
操作
contact() 为数组添加任意项,即将参数与this连接起来 (参数可以为任意单独项,同时可以为数组)
slice()创建新数组 参数为起始位置和终止位置(不包括) 不会修改原函数
var a = [6, 4, 3, 2, 1]; a.slice(1,3) // (2) [4, 3]
splice()向数组中部插入任意项 参数为起始位置,作用项数(可以为零即不改变原数组项),要插入项(可选) 返回删除项数组 会修改原函数
位置
indexOf() lastIndexOf() 从开头或末尾查找 返回位置即索引 参数为要查找的项和起点位置
迭代 every() some() 对所有项进行函数,返回一个布尔值 every的结果为每项迭代的并 some为每项迭代的或
map()对所有项进行函数 返回新数组 参数为 当前遍历项 索引 整个数组
filter()运行给定函数筛选 返回新数组
forEach()与map相同 但无返回值
归并
reduce() reduceRight() 从开头或末尾迭代所有项 参数为函数和初始值
函数参数为 上一项值 当前值 索引值 整个数组对象
返回值由作为参数的函数的return决定
var a = [1,2,3]
a.reduce(function(pre, item, index, arr){
return pre + item
})
// 6
另外ES6新增许多更强大的数组方法,如Array.from() Array.from includes copyWithin find fill等等,详情请看ES6揭秘之数组
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享