순회에 필요한 메소드 map.keys(), map.values(), map.entries()에 대해 알아봐야합니다.
메소드를 적용할 자료구조는 일련의 합의를 준수해야 합니다.
(커스텀 메소드를 사용하고 싶다면 직접 구현해야 합니다.)
일반 객체엔 다음과 같은 메소드를 사용할 수 있습니다.
일반 객체 문법과 Map, Set, Array 전용 메소드의 차이를 가볍게 살펴보자면
obj.keys()
Object.keys(obj)
ex) 전용 메소드 문법
let user = {
name: "John",
age: 30,
};
console.log(Object.keys(user)); // ['name', 'age'] 출력
console.log(Object.values(user)); // ['John', '30'] 출력
console.log(Object.entries(user)); // [['name', 'John'], ['age', 30]] 출력
이렇게 객체를 배열로 펼치는 이유는 원하는 값을 대상으로 작업할 수 있기 때문입니다.
객체는 for...in 문법을 사용하지만 이렇게 배열로 펼치면 for...of를 사용할 수 있게 됩니다.
객체에는 map, filter와 같은 배열 전용 메소드를 사용할 수 없습니다.
하지만 Object.entries 와 Object.fromEntries를 적용하면 객체에도 배열 전용 메소드를 사용할 수 있습니다.
ex) 객체 변환 활용 예시
let prices = {
banana: 1,
apple: 2,
meat: 4
}
let newArr = Object.entries(prices).map(([key, value]) => [key, value * 2]);
console.log(newArr); // [[ 'banana', 2 ], [ 'apple', 4 ], [ 'meat', 8 ]]
```![](https://velog.velcdn.com/images%2Fcptkuk91%2Fpost%2F1836fec8-082a-4078-896b-bfbf47869cd8%2Fclout.jpeg)