2017-10-18 2 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()'를위한리스트 또는 배열을 생성하기 때문에 안전합니다. 그러나 모든 것을 수행하는 것은 아닙니다 (예 : [자바가 떠오른다] (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

관련 문제