2017-10-18 56 views

回答

3

是的,這是可能的。

var map:Map<Int, String> = [100 => 'a', 101 => 'b', 102 => 'c']; 

    trace(map); // {100 => a, 101 => b, 102 => c} 

    for (v in map.keys()){ 
     if (v == 101) map.remove(v); 
    } 

    trace(map); // {100 => a, 102 => c} 

您可以在https://try.haxe.org/#AE894

+2

有沒有保證的'鍵()'迭代器將插入/刪除處理(因爲它與'迭代器()')。大多數目標都會爲'keys()'創建一個List或者Array,所以它們是安全的,但並不是所有的都可以這樣做(即[想到Java](https://github.com/HaxeFoundation/haxe/blob/5979a08/) STD/JAVA/_std/haXe的/ DS/StringMap.hx#L386))。 –

0

與例如邊玩邊遍歷地圖的鍵,可以刪除。

trace("Remove every 2nd key"); 
for(k in myMap.keys()) 
{ 
    if(k % 2 == 0) 
    myMap.remove(k); 
} 

在這裏看到我的例子:https://try.haxe.org/#d3525