JavaScript中数组方法

213 阅读4分钟

JavaScript中数组方法:

Array.isArray()

  • 用来检查一个对象是否是数组,返回值是布尔值

at()

  • 可以根据索引获取数组中的指定元素
  • at 可以接收负索引作为数组的参数

Array.from()  用来将伪数组转换成数组; 例:function fn(){ ES5:var arr = [...arguments]; ES6:var arr = Array.from(arguments) };

Array.of()  创建新数组;

concat()

  • 用来连接两个或多个数组
  • 非破坏性方法,不会影响原数组,而是返回一个新的数组

展开运算符合并数组 var newarr = [...arr1,...arr2,...arr3];得到合并后的数组;

indexOf()

  • 获取元素在数组中第一次出现的索引
  • 参数:
  1. 要查询的元素
  2. 查询的其实位置

lastIndexOf()

  • 获取元素在数组中最后一次出现的位置
  • 返回值:找到了则返回元素的索引,没有找到返回-1

find()  查找符合条件的第一个元素;

findIndex()  查找符合条件的第一个元素的索引;

join()

  • 将一个数组中的元素连接为一个字符串

["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"] -> "孙悟空,猪八戒,沙和尚,唐僧,沙和尚"

  • 参数:

指定一个字符串作为连接符

slice()

  • 用来截取数组(非破坏性方法)
  • 参数:
  1. 截取元素的起始位置(包括该位置)

  2. 截取元素的结束位置(不包括该位置)

    • 第二个参数可以省略不写,如果省略则会一直截取到最后
    • 索引可以是负值
  3. 如果将两个参数全都省略,则可以对数组进行浅拷贝(浅复制)

map()

  • 可以根据原有数组返回一个新数组

  • 需要一个回调函数作为参数,回调函数的返回值会成为新数组中的元素

  • 回调函数中有三个参数:

    • 第一个参数:当前元素
    • 第二个参数:当前元素的索引
    • 第三个参数:当前数组

forEach()

  • 用来遍历数组
  • 它需要一个回调函数作为参数,这个回调函数会被调用多次

数组中有几个元素,回调函数就会调用几次

每次调用,都会将数组中的数据作为参数传递

  • 回调函数中有三个参数:

    • element 当前的元素
    • index 当前元素的索引
    • array 被遍历的数组

filter()

  • 可以用来对数组进行过滤, 从一个数组中获得符和条件的元素
  • 将数组中符合条件的元素保存到一个新数组中返回
  • 需要一个回调函数作为参数,会为每一个元素去调用回调函数,

并根据返回值来决定是否将元素添加到新数组中

  • 根据回调函数的结果来决定是否保留元素,true 保留,false 不保留

find()

  • 可以从一个数组中获得符和条件的第一个元素

reduce()

  • 可以用来合并数组中的元素

  • 需要两个参数:

    • 回调函数(指定运算规则)

    • 四个参数:

      • prev 上一次运算结果
      • curr 当前值
      • index 当前索引
      • arr 当前数组
  • 初始值

    • 用来指定第一次运算时 prev,如果不指定则直接从第二个元素开始计算

push()

  • 向数组的末尾添加一个或多个元素,并返回新的长度

pop()

  • 删除并返回数组的最后一个元素

unshift()

  • 向数组的开头添加一个或多个元素,并返回新的长度

shift()

  • 删除并返回数组的第一个元素

splice()

  • 可以删除、插入/添加、替换数组中的元素

  • 参数:

    • 第 1 个参数 删除的起始位置
    • 第 2 个参数 删除的数量
    • 第 3 个参数 要插入的元素
  • 返回值:返回被删除的元素

reverse()

  • 反转数组

sort()

  • sort 用来对数组进行排序(会对改变原数组)
  • sort 默认会将数组升序排列

注意:sort 默认会按照 Unicode 编码进行排序,所以如果直接通过 sort 对数字进行排序

可能会得到一个不正确的结果,例如:1,2,10,4 得到的排序结果是 1,10,2,4

  • 参数:

    • 可以传递一个回调函数作为参数,通过回调函数来指定排序规则
    • (a, b) => a - b 升序排列
    • (a, b) => b - a 降序排列

flat()

  • 扁平数组,默认参数为1,传入的参数就是数组扁平的唯独

fill()

  • 填充数组里的键值

includes()

  • 判断数组里是否包含某个值