📜  ES6-地图和集

📅  最后修改于: 2020-10-25 10:44:31             🧑  作者: Mango


ES6引入了两个新的数据结构-映射集合。让我们详细了解它们。

地图

映射是键值对的有序集合。地图类似于对象。但是,地图和对象之间存在一些差异。这些在下面列出-

Sr.No Object Map
1 Keys cannot be Object type Keys can be any type
2 Keys are not ordered Keys are ordered
3 not iterable iterable

句法

下面给出了Map的语法-

let map = new Map([iterable])
let map = new Map()

以下示例使用可迭代的构造函数创建地图-


上面代码的输出如下所示-

{{…} => "Software Architect", {…} => "Developer"}

检查地图大小

size属性可用于确定映射中存储的值的数量。

句法

下面给出了检查地图大小的语法-

map_name.size


上面代码的输出如下所示-

3

以下是一些可用于操作地图的常见方法-

Sr.No Object & Map
1 set(key,value)

Adds key and value to map

2 get(key)

Returns value if key is matched

3 has(key)

Returns true if an element with the specified key exists; else returns false

4 keys()

Returns an iterator that contains the keys for each element in the map object

5 values()

Returns an iterator that contains the values for each element in the map object

6 entries()

Returns an iterator that contains the key-value pairs for each element in the Map

7 delete(key)

Removes the specified element from a Map object

弱地图

WeakMap是map的一小部分。密钥是弱引用的,因此它只能是非原始的。如果没有引用对象键,则将对其进行垃圾回收。

  • 不可迭代
  • 每个键都是对象类型

如果键没有引用,WeakMap将允许垃圾回收。

句法

WeakMap的语法如下所述-

new WeakMap([iterable])

例子1


例子2


上面代码的输出如下所述-

{{…} => 1002, {…} => 1003, {…} => 1001}
1002
true
{{…} => 1002, {…} => 1003}

集合是唯一值的无序集合。该数据结构可以包含基本类型和对象类型的值。

句法

Set的语法在下面给出-

new Set([iterable])
new Set()


上面代码的输出如下:

{"A", "B", "C", "D"}

检查一组的大小

Set对象的size属性可用于查询Set中的元素数。

句法

下面提到了检查集合大小的语法-

set.size


上面代码的输出如下:

4

迭代集合

我们可以使用forEachfor..of循环遍历Set。这在下面的示例中显示-

  

上面代码的输出如下所述-

forEach
A
B
C
D
for of..
A
B
C
D

以下方法可用于操作集合-

Sr.No Object & Map
1 add(element)

Adds an element to the Set

2 has(element)

Returns true if element found; else returns false

3 delete(element)

Delete specific element from the Set

4 clear()

Clears all elements from the Set

弱集

Weakset弱地持有对象,这意味着如果未引用WeakSet中存储的对象,则会对其进行垃圾回收。 WeakSet是不可迭代的,并且没有get方法。


上面代码的输出将如下所述-

WeakSet {{…}, {…}, {…}}
true
WeakSet {{…}, {…}}