반복 가능한 객체의 키
중요도: 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
가 작동하게 하려면 어떻게 코드를 고쳐야 할까요?
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