📜  JavaScript 中的 Map.entries()

📅  最后修改于: 2022-05-13 01:57:14.144000             🧑  作者: Mango

JavaScript 中的 Map.entries()

JavaScript 中的地图是什么?

  • Map 是 JavaScript 中的一种数据结构,它允许存储 [key, value] 对,其中任何值都可以用作键或值。
  • 地图集合中的键和值可以是任何类型,如果使用集合中已存在的键将值添加到地图集合,则新值将替换旧值。
  • map 对象中元素的迭代按插入顺序完成,“for...”循环为每次迭代返回一个包含所有 [key, value] 对的数组。

JavaScript 中对象和地图的区别
这两种数据结构在很多方面都相似,例如都使用键存储值、允许使用键检索这些值、删除键以及验证键是否包含任何值。然而,JavaScript 中的 Objects 和 Maps 之间存在相当显着的差异,这使得在许多情况下使用 Maps 成为更好和更可取的选择。

  • 映射中使用的键可以是任何类型的值,例如函数、对象等,而对象中的键仅限于符号和字符串。
  • 使用 size 属性可以很容易地知道地图的大小,但是在处理对象时,必须手动确定大小。
  • 在需要频繁添加和删除 [key, value] 对的情况下,应该首选 Map,因为 map 是迭代数据类型,可以直接迭代,而迭代对象需要以特定方式获取其键。

JavaScript 中的 Map.entries() 方法
JavaScript 中的 Map.entries() 方法用于返回一个迭代器对象,该对象包含地图每个元素的所有 [key, value] 对。它按照插入顺序返回映射中所有元素的 [key, value] 对。
Map.entries() 方法不需要传递任何参数并返回映射的迭代器对象。
应用:
每当我们想使用迭代器对象获取映射的每个元素的所有 [key, value] 对时,我们使用 Map.entries() 方法。
句法:

mapObj.entries()

下面提供了上述函数的示例。

例子:

Input : var myMap = new Map();
        myMap.set(0, 'geeksforgeeks');
        myMap.set(1, 'is an online portal');
        myMap.set(2, 'for geeks');
        var iterator_obj=myMap.entries();
        document.write(iterator_obj.next().value,"
"); document.write(iterator_obj.next().value,"
"); document.write(iterator_obj.next().value,"
"); Output : Array [0, "geeksforgeeks"] Array [1, "is an online portal"] Array [2, "for geeks"]

说明:在本例中,创建了一个包含三个 [key, value] 对的映射对象“myMap”,并创建了一个迭代器对象“iterator_obj”方法,该方法使用 Map.entries() 方法返回 [key, value]按插入顺序对映射的所有元素进行配对。

代码 1:

                    

输出 :

Array [0, "geeksforgeeks"]
     Array [1, "is an online portal"]
     Array [2, "for geeks"]

代码 2:

                    

输出 :

Array [0, "Maps"]
     Array [1, "in JavaScript"]

例外:

  • 如果变量不是 Map 类型,则 Map.entries() 操作会抛出 TypeError。
  • 如果与映射的 [key, value] 对相比,“iterator_obj.next().value”被使用的次数更多,则 Map.entries()函数在所有这些情况下都返回 undefined。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries