Inkrementacja wartości dla wskazanego klucza

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.

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.
2

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1