2013-06-11 2 views
8

지도에서 선택한 키를 제거하는 다트 관용적 인 방법은 무엇입니까? 아래에 문자열 키를 보관하기 위해 임시 emptyList를 사용하고 있습니다. 더 깨끗한 방법이 있습니까?다트 맵에서 선택된 키 삭제

List<String> emptyList = new List<String>(); 
_objTable.keys.forEach((String name) { 
    if (_objTable[name].indices.isEmpty) { 
    emptyList.add(name); 
    print("OBJ: deleting empty object=$name loaded from url=$url"); 
    } 
}); 
emptyList.forEach((String name) => _objTable.remove(name)); 

답변

8

당신은 이런 식으로 뭔가를 할 수 : 마법처럼 일했다

_objTable.keys 
    .where((k) => _objTable[k].indices.isEmpty) // filter keys 
    .toList() // create a copy to avoid concurrent modifications 
    .forEach(_objTable.remove); // remove selected keys 
+0

을, 감사합니다! 나는 .forEach (_objTable.remove) 부분을 이해할 수 없다. .forEach()에 _objTable.remove 함수를 전달하고 있습니까? – Everton

+3

여기서는 list의 각 요소를 호출하는 함수를 전달합니다. 기본적으로, 그것은 .forEach ((name) => _objTable.remove (name))'와 같습니다. –

관련 문제