可迭代键
重要性: 5
我们想将 map.keys()
的数组存储在一个变量中,然后对它应用特定于数组的方法,例如 .push
。
但这不起作用
let
map =
new
Map
(
)
;
map.
set
(
"name"
,
"John"
)
;
let
keys =
map.
keys
(
)
;
// Error: keys.push is not a function
keys.
push
(
"more"
)
;
为什么?我们如何修复代码以使 keys.push
工作?
这是因为 map.keys()
返回的是一个可迭代对象,而不是数组。
我们可以使用 Array.from
将其转换为数组
let
map =
new
Map
(
)
;
map.
set
(
"name"
,
"John"
)
;
let
keys =
Array.
from
(
map.
keys
(
)
)
;
keys.
push
(
"more"
)
;
alert
(
keys)
;
// name, more