📦

Invert Object

Invert Object - Explanation

쉬움 객체 O(n) O(n)

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

solution.js
function invert(obj) {
  return Object.fromEntries(
    Object.entries(obj).map(([k, v]) => [v, k])
  );
}

Key Concepts from This Problem

1. Object.entries
2. Object.fromEntries
3. 구조 분해 할당
4. 키-값 교환

Common Mistakes

중복 값이 있으면 일부 키가 덮어써집니다
객체의 키는 항상 문자열이 됩니다
숫자 값도 문자열 키로 변환됩니다

Hints

Hint 1: Object.entries와 Object.fromEntries를 사용하세요.

Complexity Analysis

Time Complexity

O(n)

Grows linearly with input size

Space Complexity

O(n)

Uses memory proportional to input size

Related Tags

#객체 #entries #변환