반복 가능한 객체의 키
중요도: 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