Chiavi iterabili
importanza: 5
Vorremmo avere un array di map.keys()
in una variabile, quindi potergli applicare un metodo specifico degli arrays, ad esempio .push
.
Ma c’è un problema:
let
map =
new
Map
(
)
;
map.
set
(
"name"
,
"John"
)
;
let
keys =
map.
keys
(
)
;
// Error: keys.push is not a function
keys.
push
(
"more"
)
;
Perché? Come possiamo sistemare il codice per rendere keys.push
funzionante?
Questo accade perchè map.keys()
ritorna un oggetto iterabile, non un array.
Possiamo convertirlo in un array utilizzando Array.from
:
let
map =
new
Map
(
)
;
map.
set
(
"name"
,
"John"
)
;
let
keys =
Array.
from
(
map.
keys
(
)
)
;
keys.
push
(
"more"
)
;
alert
(
keys)
;
// name, more