前言
此文仅仅是本人自己对JS的数组API进行简单的分类,具体信息请去Moz文档查阅
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
静态方法与实例方法
首先,分清一下Array对象上的静态方法和实例方法,静态方法就是只存在于Array对象上的方法,比如用Array.xxx()调用,而实例方法是写在原型链上的,各种数组和Array共享,可以直接调用比如[].xxx()
小工具
Array.length
除了直接拿来用,还可以判断数组是否为空,也可以直接截短数组(不常用)
Array.isArray
判断数组类型,不用typeof和instanceof
Array.from
类数组转数组,像DOM的一些集合,arguments,还有Set/Map/String等数据结构都可以转
- 在某些情况不能直接引用原数组的可以直接使用此方法拷贝
Array.of
多参数转数组,和new Array不一样
fill
可以填充元素,常常和new Array()一起用
toString/toLocalString:
重写了Object的相关方法,返回经join连接的字符串
增删改查
pop/push/shift/unshift
模拟栈和队列常用,要注意出队是shift
find/findIndex/includes/indexOf/lastIndexOf
查值查索引(传回调),模糊查找,顺着查倒着查索引
join
数组转字符串,和字符串的split方法互相照应
slice/concat/splice:
拆和合,还有一个增删改都能干的splice
concat还可以将非数组值合并到数组里
copyWithin:
浅复制,目前还没用到过
迭代相关
keys/enenties/values
都是返回一个迭代器对象,可以配合of或者in循环获取内容
函数式编程工具函数
every/some
逻辑里面的所有和存在
sort/reverse
排序和反转,算法题经常用
forEach/map/filter
遍历/映射/过滤,根据特定场景选择使用
reduce/reduceRight
累加/反向累加,设定初始值可以做一些很酷的事情
网友评论