Pick Object Keys
Pick Object Keys - Explanation
Problem Summary
Write a function that creates an object with only the specified keys.
Go to Problem →Detailed Explanation
이 문제는 **객체에서 원하는 속성만 추출**하는 pick 유틸리티 함수를 구현합니다. Lodash의 _.pick과 같은 기능입니다. **알고리즘 전략** 1. 빈 객체로 시작 2. 원하는 키 목록을 순회 3. 각 키가 원본 객체에 존재하면 복사 **reduce로 객체 생성** ```javascript keys.reduce((result, key) => { if (key in obj) result[key] = obj[key]; return result; }, {}); ``` **{a:1, b:2, c:3}에서 ["a", "c"] 선택** - key="a": "a" in obj → result={a:1} - key="c": "c" in obj → result={a:1, c:3} **key in obj vs obj.hasOwnProperty(key)** - `in`: 상속된 속성도 체크 - `hasOwnProperty`: 자신의 속성만 체크 대부분의 경우 `in`으로 충분합니다. **존재하지 않는 키 처리** keys에 객체에 없는 키가 포함되어도 안전합니다. `if (key in obj)` 조건이 걸러냅니다. **실용적 활용** API 응답에서 필요한 필드만 추출할 때 유용합니다: ```javascript const user = pick(apiResponse, ['id', 'name', 'email']); ```
Solution Code
function pick(obj, keys) {
return keys.reduce((result, key) => {
if (key in obj) result[key] = obj[key];
return result;
}, {});
}Key Concepts from This Problem
Common Mistakes
Hints
Complexity Analysis
Time Complexity
O(k)
Space Complexity
O(k)