Invert Object
Invert Object - Explanation
Problem Summary
Write a function that swaps the keys and values of an object.
Go to Problem →Detailed Explanation
이 문제는 **Object.entries**와 **Object.fromEntries**를 활용한 객체 변환을 학습합니다. **객체 ↔ 배열 변환** - `Object.entries(obj)`: 객체 → [key, value] 배열들의 배열 - `Object.fromEntries(arr)`: [key, value] 배열들 → 객체 **알고리즘 단계** 1. entries로 [key, value] 쌍들의 배열로 변환 2. map으로 각 쌍을 [value, key]로 뒤집기 3. fromEntries로 다시 객체로 변환 **{a: "1", b: "2"} 처리 과정** 1. entries: [["a", "1"], ["b", "2"]] 2. map: [["1", "a"], ["2", "b"]] 3. fromEntries: {"1": "a", "2": "b"} **구조 분해 할당: ([k, v]) => [v, k]** map 콜백에서 배열 인자를 k와 v로 분해합니다. **주의사항** - 값이 문자열이 아니면 키로 변환될 때 문자열이 됩니다 - 중복 값이 있으면 마지막 것만 남습니다 - 값이 객체면 "[object Object]"가 키가 됩니다 **for...in 버전** ```javascript function invert(obj) { const result = {}; for (const key in obj) { result[obj[key]] = key; } return result; } ```
Solution Code
function invert(obj) {
return Object.fromEntries(
Object.entries(obj).map(([k, v]) => [v, k])
);
}Key Concepts from This Problem
Common Mistakes
Hints
Complexity Analysis
Time Complexity
O(n)
Grows linearly with input size
Space Complexity
O(n)
Uses memory proportional to input size