Ce face Map.removeWhere
removeWhere cheamă funcția pentru fiecare pereche, cu cheia și valoarea, și șterge perechile pentru care rezultatul este true. Modifică map-ul pe loc.
Este modul sigur de a șterge mai multe perechi deodată: nu ai problema ștergerii în timpul unei bucle for.
Parametri
| Parametru | Descriere |
|---|---|
test |
Funcția care primește cheia și valoarea și decide dacă perechea se șterge. |
Ce returnează
Nimic (void); map-ul se modifică direct.
Exemple
Exemplul 1: Elimină produsele epuizate
void main() {
final stoc = {'mere': 40, 'pere': 0, 'prune': 12, 'gutui': 0};
stoc.removeWhere((produs, bucati) => bucati == 0);
print(stoc);
}
Rezultat
{mere: 40, prune: 12}
Exemplul 2: Test pe cheie
void main() {
final setari = {'tema': 'întunecată', '_temp': 'x', 'limba': 'ro', '_debug': 'da'};
setari.removeWhere((cheie, _) => cheie.startsWith('_'));
print(setari);
}
Rezultat
{tema: întunecată, limba: ro}
Greșeli frecvente
- Te aștepți ca
removeWheresă returneze un map nou. Returneazăvoidși schimbă map-ul existent. Pentru o copie filtrată scrieMap.fromEntries(m.entries.where(...)).
Comenzi înrudite
Map.remove: remove scoate o cheie din map și returnează valoarea ei (sau null); clear golește tot map-ul.List.removeWhere: removeWhere șterge toate elementele care trec testul; retainWhere le păstrează doar pe ele.Map.fromEntries: Construiește un map dintr-o succesiune de perechi MapEntry, de exemplu entries filtrate sau sortate.