Array 数组方法全方位总结(简单介绍篇)

1,967 阅读4分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。

将类数组结构转换为数组实例


  • 关键字 form()

    特点:

    1、字符串会被拆分为单字符数组;

    2、将集合映射为一个新的数组;

    3、对现有数组执行浅复制;

    4、可以使用任何可迭代的对象;

    5、arguments对象可以被轻松的转换为数组;

    6、转换带有必要属性的自定义对象;

将一组参数转换为数组实例


  • 关键字of()

    特点:把一组参数转换为数组(替代ES6之前常用的Array.prototype.slice.call(arguments),一种异常笨拙的将arguments对象转换为数组的写法)

迭代器方法


  • 关键字keys()

    特点:返回数组索引的迭代器;

  • 关键字values()

    特点:返回数组元素的迭代器;

  • 关键字entries()

    特点:返回所以值/对的迭代器

复制和填充的方法(会改变原来的数组)


  • 关键字 copyWithin() --- 批量复制方法

    特点:

    1、会按照 指定范围浅复制数组中的部分内容,然后将他们插入到指定索引开始的位置

  • 关键字 fill() --- 填充数组方法

    特点:

    1、向一个已有的数组中插入全部或部分相同的值

    共同特点:

    1、不会改变数组的大小;

    2、接收三个参数(target, start, end)。target(必传):从该位置开始替换数据、start(可选):从该位置开始读取数据。默认为0,如果为负数,表示倒数、end(可选):到该位置前停止读取数据,默认为数组长度,如果为负值,表示倒数;

栈方法(后进先出,可通过push和pop实现类似栈的行为)


  • 关键字push()

    特点:接收任何数量的参数,并将它们添加到数组的末尾。

  • 关键字pop()

    特点:用于删除数组的最后一项,并减少数组的length值,并返回被删除的数组

队列方法(先进先出,可通过shift和push实现类似队列行为)


  • 关键字shiift()

    特点:删除数组的第一项并返回它,数组长度length - 1

反向队列(可通过unshift和pop实现类似反队列行为)


  • 关键字 unshift()

    特点: 在数组开头添加任意多个值

操作方法


  • 关键字 concat()

    特点:Symbol.isConcatSpreadable这个符号能够阻止concat()打平参数数组,相反 把这个值设置为true可以强制打平类数组对象。

  • 关键字slice()

    特点:可以实现插入删除以及替换等操作

搜索和位置方法


严格相等

  • 关键字 indexOf() 返回查找元素在数组中的位置
  • 关键字 lastIndexOf() 返回查找的元素在数组中的位置
  • 关键字 includes() 返回布尔值,指至少找到一个与指定元素匹配的项

断言函数

  • 关键字 find() 返回第一个匹配的元素 (找到匹配后永远不会检查数组的最后一个元素)
  • 关键字 findIndex() -- 返回第一个匹配元素的索引

迭代方法


  • 关键字 every() 搜索符合某个条件的元素(所有条件都符合,返回true),返回布尔值
  • 关键字 filter() 过滤出一个符合条件的数组
  • 关键字 forEach() 相当于for循环, 没有返回值
  • 关键字 map() 返回一个数组
  • 关键字 some() 搜索符合某个条件的元素(只要有一个符合条件就返回true), 返回布尔值

归并方法


  • 关键字 reduce()

    特点以及用处:

    1、累加数组中的所有的值;

    2、数组去重;

    3、统计每个值在数组中出现的次数;

    4、将二维以及多维数组转换为一维数组;

    5、对象里面的属性求和;

Map()


Map是一种新的集合类型,键/值存储机制,使用new 关键字和Map构造函数可以创建一个空映射。例如: const m = new Map()

  • 关键字 get() 返回选定键 的值value

  • 关键字 set() 返回映射实例,可多次连续操作

  • 关键字 has() 查询选定键是否存在, 返回布尔值

  • 关键字 clear() 清除这个映射实例中的所有键值对

  • 关键字 delete() 只删除选定键的这一个键值对

  • 关键字 clear() 获取映射中键值对的数量

一些特点:

1、作为键的字符串原始值不能够修改

2、修改了作为键的对象属性,但对象在映射内部仍然引用相同的值

3、Map()可以比Object多存储50%的键值对

4、代码涉及大量删除操作时应选择Map()

Set()


新集合类型,集合数据结构

  • 关键字 add() 增加值
  • 关键字 has() 查询值
  • 关键字 size() 获取元素的数量
  • 关键字 delete() 删除某个值
  • 关键字 clear() 删除实例中的所有值