돌아가기

반복 가능한 객체의 키

중요도: 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