📦

Omit Keys

Omit Keys - Explanation

보통 객체 O(n*m) O(n)

Problem Summary

Write a function that returns an object without the specified keys.

Go to Problem →

Detailed Explanation

이 문제는 **Object.entries()와 Object.fromEntries()**를 조합하여 객체에서 특정 키를 제외하는 방법을 학습합니다. ## 핵심 개념: 객체 변환 파이프라인 객체를 배열로 변환 → 필터링 → 다시 객체로 변환하는 패턴입니다. ### 접근 방법 ```javascript Object.fromEntries( Object.entries(obj).filter(([k]) => !keys.includes(k)) ) ``` ### 단계별 분석 1. Object.entries(obj): 객체를 [키, 값] 배열로 2. filter: 제외할 키 필터링 3. Object.fromEntries: 다시 객체로 변환 ### 실행 예시 ```javascript omit({a: 1, b: 2, c: 3}, ['b']) // entries: [['a', 1], ['b', 2], ['c', 3]] // filter: [['a', 1], ['c', 3]] // result: {a: 1, c: 3} ``` ### pick과 omit의 차이 ```javascript pick(obj, ['a']) // 포함할 키만 선택 omit(obj, ['a']) // 제외할 키만 선택 ``` 이 패턴은 Lodash의 omit 함수와 동일한 동작을 합니다.

Solution Code

solution.js
function omit(obj, keys) {
  return Object.fromEntries(
    Object.entries(obj).filter(([k]) => !keys.includes(k))
  );
}

Key Concepts from This Problem

1. Object.entries
2. Object.fromEntries
3. filter
4. 객체 변환

Common Mistakes

Object.fromEntries는 ES2019 기능입니다
구조 분해에서 값을 사용하지 않으면 언더스코어나 무시 가능
깊은 복사가 아닌 얕은 복사입니다

Hints

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

Complexity Analysis

Time Complexity

O(n*m)

Space Complexity

O(n)

Uses memory proportional to input size

Related Tags

#객체 #filter #변환