- 新建数组的方式有两种,如:let arr = [];let arr = new Array();
- 对数组的遍历语法:for of
- 对数组的操作:
arr.push(item) //返回数组push后的长度
arr.pop() //移除并返回数组的最后一个元素
arr.unshift(item) //往数组的首位填充元素item,返回填充后的元素item
arr.shift() //移除数组的首位并且返回这个元素 - arr.toString() //返回以“,”连接的字符串
- 不要用===比较数组,除非引用的是同一个数组否则都为false
- 0===[] //true,[]会被转换为'',''会被转换为0
- 如果我们手动的更改数组的length属性,若设置的比原来短,则数组会截断length之后的元素并且不可恢复,设置的比原来长没有意义,只会使得长出来的部分都为undefined,并且length也改变。最好的清空一个数组的方式就是arr.length = 0
-
数组方法备忘单,如果有返回新的数组的函数,则原有函数不变:
-
添加/删除元素:
push(...items)
—— 向尾端添加元素,pop()
—— 从尾端提取一个元素,shift()
—— 从首端提取一个元素,unshift(...items)
—— 向首端添加元素,splice(pos, deleteCount, ...items)
—— 从pos
开始删除deleteCount
个元素,并插入items
。slice(start, end)
—— 创建一个新数组,将从索引start
到索引end
(但不包括end
)的元素复制进去;如果不带参数则创造一个当前数组的副本。concat(...items)
—— 返回一个新数组:复制当前数组的所有元素,并向其中添加items
。如果items
中的任意一项是一个数组,那么就取其元素。
-
搜索元素:
indexOf/lastIndexOf(item, pos)
—— 从索引pos
开始搜索item
,搜索到则返回该项的索引,否则返回-1
。includes(value)
—— 如果数组有value
,则返回true
,否则返回false
。find/filter(func)
—— 通过func
过滤元素,返回使func
返回true
的第一个值/所有值。findIndex
和find
类似,但返回索引而不是值。
-
遍历元素:
forEach(func)
—— 对每个元素都调用func
,不返回任何内容。
-
转换数组:
map(func)
—— 根据对每个元素调用func
的结果创建一个新数组。sort(func)
—— 对数组进行原位(in-place)排序,然后返回它。reverse()
—— 原位(in-place)反转数组,然后返回它。split/join
—— 将字符串转换为数组并返回。reduce/reduceRight(func, initial)
—— 通过对每个元素调用func
计算数组上的单个值,并在调用之间传递中间结果。
-
其他:
Array.isArray(arr)
检查arr
是否是一个数组。
-