Inkrementacja wartości dla wskazanego klucza

Inkrementacja wartości dla wskazanego klucza
WS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
1

Tworzę mapę.
Ustawiam klucz key i nadaję mu wartość 0.
Inkrementuję wartość kluczowi key.
Jeżeli klucz key nie istnieje, tworzę go i ustawiam mu wartość na 0.
Z tego co rozumiem, to instrukcja warunkowa nie powinna się wykonać, bo taki klucz istnieje, a jednak ustawia mi wartość klucza key na 0 i inkrementuje wartość dwukrotnie.

Kopiuj
let map = new Map();
map.set('key', 0);
map.set('key', map.get('key') + 1);

if (!('key' in map)) {
   map.set('key', 0);
}
map.set('key', map.get('key') + 1);
map.set('key', map.get('key') + 1);

console.log(map);
// Map(1) {"k" => 2}
  1. Próbowałem z hasOwnProperty().
  2. Czego ja nie rozumiem? Wydaje mi się, że wartość dla key powinna wynosić 3.
TK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
2

Użyj map.has('key') do sprawdzenia, czy klucz istnieje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.