Inkrementacja wartości dla wskazanego klucza

Odpowiedz Nowy wątek
2019-10-09 21:55
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.

Pozostało 580 znaków

2019-10-09 22:02

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

edytowany 1x, ostatnio: taktyczny-komentarz, 2019-10-09 22:03

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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