ECMAScript 2019 中的 set 和 map 对象详解

阅读时长 5 分钟读完

在 ECMAScript 2019 中,set 和 map 对象是新的数据类型。它们可以用来存储一组唯一的值和键值对。这篇文章将详细介绍 set 和 map 对象,包括其用法、方法和实例。

Set 对象

set 对象是一种无序的集合,其中每个值只能出现一次。它可以用来存储一组唯一的值,例如:

Set 对象方法

set 对象有以下方法:

  • add(value):添加一个值到 set 对象中。
  • clear():清空 set 对象中的所有值。
  • delete(value):从 set 对象中删除一个值。
  • has(value):判断 set 对象中是否包含一个值。
  • forEach(callbackFn, thisArg):遍历 set 对象中的每个值,并执行回调函数。

例如:

Set 对象实例

以下是使用 set 对象的实例:

  1. 使用 set 对象存储一组唯一的值,并返回这组值的长度。
  1. 判断两个数组是否有重复的值。
-- -------------------- ---- -------
-------- ------------------ ----- -
  --- ---- - --- ----------
  --- ---- - --- ----------
  --- ---- ----- -- ----- -
    -- ----------------- -
      ------ -----
    -
  -
  ------ ------
-

--- ---- - --- -- ---
--- ---- - --- -- ---
------------------------------ ------- -- ----

Map 对象

map 对象是一种键值对的集合,其中每个键只能出现一次。它可以用来存储一组唯一的键值对,例如:

Map 对象方法

map 对象有以下方法:

  • set(key, value):向 map 对象中添加一个键值对。
  • get(key):获取 map 对象中指定键对应的值。
  • has(key):判断 map 对象中是否包含指定的键。
  • delete(key):从 map 对象中删除指定的键值对。
  • clear():清空 map 对象中的所有键值对。
  • forEach(callbackFn, thisArg):遍历 map 对象中的每个键值对,并执行回调函数。

例如:

Map 对象实例

以下是使用 map 对象的实例:

  1. 使用 map 对象存储一组键值对,并返回这组键值对的长度。
-- -------------------- ---- -------
-------- --------------- -
  --- ----- - ----------- ---
  --- --- - --- ------
  --- ---- ---- -- ------ -
    -- --------------- -
      ------------- ------------- - ---
    - ---- -
      ------------- ---
    -
  -
  ------ ---------
-

--- --- - ------ ----- -------
----------------------------- -- -
  1. 将一个数组转换成键值对的形式。
-- -------------------- ---- -------
-------- --------------- -
  --- --- - --- ------
  --- ---- - - -- - - ----------- - -- -- -
    --------------- ----- - ----
  -
  ------ ----
-

--- --- - -------- ------- ------ ----
----------------------------- -- --- - ------ -- ------- ----- -- -- -

总结

set 和 map 对象是 ECMAScript 2019 中的新数据类型,它们可以用来存储一组唯一的值和键值对。set 对象是一种无序的集合,其中每个值只能出现一次;map 对象是一种键值对的集合,其中每个键只能出现一次。set 和 map 对象都有一些方法,例如添加、删除、遍历等。它们可以用来解决一些常见的问题,例如去重、计数、转换等。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6560897ed2f5e1655dabba1b

纠错
反馈