javascript数组

215 阅读3分钟

Array

创建

  1. new+构造函数
    • new Array(5);
    • new Array('red');
  2. 数组字面量
    • Array.from() 用于将类数组转换为数组
    • Array.of() 用于将一组参数转换为数组实例

数组空位

const options = [1,,,,5]; 值为undefined

检测数组

  1. value instanceof Array
  2. Array.isArray(value)

迭代器方法

  1. keys()
  2. values()
  3. extries()
  • 都返回迭代器,可通过Array.from()转换为数组实例

复制和填充方法

  1. copyWithin() 批量复制
  2. fill() 填充数组
    • fill(填充值, 开始索引, 结束索引)
    • 索引可传负值

转换方法

  1. toLocaleString()
  2. toString()
    • 返回逗号分隔的字符串
  3. valueOf()
    • 返回数组本身
  4. join()
    • 接受分隔符,不传默认使用逗号分隔

栈方法

  1. push()
    • 接受任意数量的参数,添加到数组末尾
    • 返回最新的长度
  2. pop()
    • 删除数组最后一项
    • 返回被删除的项

队列方法

  1. shift()
    • 删除数组的第一项
    • 返回被删除的项
  2. unshift()
    • 在数组开头添加任意多个值
    • 返回新的数组长度

排序方法

  1. reverse()
    • 将数组元素反向排列
    • 会改变原数组
  2. sort()
    • 按照升序或指定顺序排列数组
    • 接受一个比较函数,如果val1应在val2之后,返回正值,如果相等,返回0,如果应该之前,返回负值

操作方法

  1. concat()
    • 在现有数组全部元素基础上创建一个新数组,返回新数组
    • 接受多个数组或多个数组元素
  2. slice()
    • 返回基于原数组索引之间的新数组
    • 接受一个参数时:返回从该索引到末尾的所有元素
    • 接受两个参数时:返回从开始索引到结束索引之间的元素,不包含结束索引
    • 在包含 5 个元素的数组上调用 slice(-2,-1),就相当于调用 slice(3,4)。如果结束位置小于开始位置,则返回空数组。
  3. splice() 在数组中间插入元素
    • 删除:(要删除的第一个元素的位置,要删除的数量)splice(0, 2)会删除前两个元素
    • 插入:(开始位置,0(要删除的数量),要插入的元素,....)
    • 替换:(开始位置,要删除的数量,要插入的元素,....)
    • 返回被删除的元素的数组

搜索和位置方法

严格相等
  1. indexOf()
    • 返回查找元素的位置,没找到返回-1
  2. lastIndexOf()
    • 返回查找元素的位置,没找到返回-1
  3. includes()
    • 返回布尔值
  • 参数:(要查找的元素,【起始搜索位置】)
断言函数
  1. find()
    • 返回第一个匹配的元素
  2. findIndex()
    • 返回第一个匹配元素的索引
  • 参数:func(元素,索引,数组本身){}

迭代方法

  1. every()
    • 对数组每一项都运行传入的函数,如果对每一项函数都返回 true,则这个方法返回 true
  2. some()
    • 对数组每一项都运行传入的函数,如果有一项函数返回 true,则这个方法返回 true
  3. filter()
    • 对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回
  4. forEach()
    • 对数组每一项都运行传入的函数,没有返回值
  5. map()
    • 对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组
  • 这些方法都不改变调用它们的数组

归并方法

  1. reduce()
    • 从数组第一项开始遍历到最后一项
  2. reduceRight()
    • 反之
  • 参数:func(上一个归并值,当前项,当前项的索引,数组本身){}