- 新建数组的方式有两种,如: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是否是一个数组。
-