当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Javascript Map.entries( )用法及代码示例


什么是JavaScript中的Map?

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

JavaScript中对象与Map之间的差异
这两种数据结构在许多方面都是相似的,例如都使用键存储值,允许使用键检索这些值,删除键并验证键是否具有任何值。但是,JavaScript中的对象和Map之间存在相当大的差异,这使得在许多情况下使用Map成为更好,更可取的选择。

  • 映射中使用的键可以是任何类型的值,例如函数,对象等,而对象中的键则限于符号和字符串。
  • 通过使用size属性可以轻松知道Map的大小,但是在处理对象时,必须手动确定大小。
  • 在要求涉及频繁添加和删除[键,值]对的情况下,最好使用Map,因为map是一种迭代数据类型,可以直接进行迭代,而迭代对象需要以特定方式获取其键。

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


mapObj.entries()

Parameters Used:

  • It does not require any parameters to be passed.

返回值:

  • The Map.entries() method returns the [key, value] pairs of all the elements of a map in the order of their insertion.

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

例:

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,"<br>");
        document.write(iterator_obj.next().value,"<br>");
        document.write(iterator_obj.next().value,"<br>");


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

说明:在此示例中,已使用三个[键,值]对创建了一个映射对象“myMap”,并创建了一个迭代器对象“iterator_obj”方法,该方法使用Map.entries()方法返回以下所有元素的[键,值]对:按插入顺序排列的Map。

代码1:

<script> 
    // creating a map object 
    var myMap = new Map(); 
  
// Adding [key, value] pair to the map 
myMap.set(0, 'geeksforgeeks'); 
myMap.set(1, 'is an online portal'); 
myMap.set(2, 'for geeks'); 
  
// creating an iterator object using Map.entries() method 
var iterator_obj = myMap.entries(); 
  
// displaying the [key, value] pairs of all the elements of the map 
document.write(iterator_obj.next().value,"</br>"); 
document.write(iterator_obj.next().value,"</br>"); 
document.write(iterator_obj.next().value,"</br>"); 
  
</script>                    

输出:

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

代码2:

<script> 
    // creating a map object 
    var myMap = new Map(); 
  
// Adding [key, value] pair to the map 
myMap.set(0, 'Maps'); 
myMap.set(1, 'in JavaScript'); 
  
// creating an iterator object using Map.entries() method 
var iterator_obj = myMap.entries(); 
  
// displaying the [key, value] pairs of all the elements of the map 
document.write(iterator_obj.next().value,"</br>"); 
document.write(iterator_obj.next().value,"</br>"); 
  
</script>                    

输出:

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

异常:

  • 如果变量不是Map类型,则Map.entries()操作将引发TypeError。
  • 如果与映射的[键,值]对相比,使用“iterator_obj.next().value”的次数更多,则Map.entries()函数将为所有这些情况返回undefined。

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




注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 Map.entries() In JavaScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。