反復可能(iterable)なキー
重要性: 5
私たちは map.keys()
の配列を取得し、その結果を使って処理を続けたいです(マップ自体とは別に)。
が、問題があります。:
let
map =
new
Map
(
)
;
map.
set
(
"name"
,
"John"
)
;
let
keys =
map.
keys
(
)
;
// Error: keys.push is not a function
keys.
push
(
"more"
)
;
なぜでしょう?key.push
が機能するためにはコードをどのように直せばよいでしょう?
これは、map.keys()
は配列ではなく、反復可能(iterable) を返すためです。
Array.from
を使うことで、それを配列に変換できます:
let
map =
new
Map
(
)
;
map.
set
(
"name"
,
"John"
)
;
let
keys =
Array.
from
(
map.
keys
(
)
)
;
keys.
push
(
"more"
)
;
alert
(
keys)
;
// name, more