2016-03-24 51 views
0

無需迭代就可以通過它的條目索引訪問JS地圖對象嗎?通過條目索引訪問地圖對象

迭代我能得到與myMap.entries().next().value的第一個條目,
但是, 爲了得到最後一個條目,我不得不重複使用計數器的所有條目查看地圖大小:

var myMap = new Map(); 
 
myMap.set("a", "alpha"); 
 
myMap.set("b", "beta"); 
 
myMap.set("g", "gamma"); 
 

 

 
var firstMapIter = myMap[Symbol.iterator]().next().value; 
 

 
console.log(last(myMap)) 
 

 

 
function last(m){ 
 
    var i=0, 
 
     iter = myMap[Symbol.iterator](); 
 
    
 
    while(i++ < myMap.size) 
 
    var res = iter.next().value; 
 
    
 
    return res; 
 
    
 
}

回答

1

不,這是不可能的,也都是從(如一個由返回MapIterator實例迭代的Map對象)。

+1

但是'MapIterator'的順序有保證嗎? – maioman

+0

@maioman:是的。也就是說,如果你需要一個有序的集合,你不應該使用'Map's,'Map'迭代次序只有*明確定義*是一致的(也是跨實現的)。 – Bergi