🛠️ 처음부터 만드는 Pick — 객체에서 필요한 필드만 추출하기
# Pick: 객체 필터링의 기본
`pick(obj, keys)`은 객체에서 지정한 키만 추출해 새 객체를 반환합니다. API 응답에서 필요한 필드만 골라내거나, 큰 객체를 축소할 때 유용합니다.
```javascript
// 기본 구현
function pick(obj, keys) {
return keys.reduce((acc, key) => {
if (key in obj) acc[key] = obj[key];
return acc;
}, {});
}
// 사용
const user = { id: 1, name: 'Alice', email: 'alice@example.com', password: 'secret' };
console.log(pick(user, ['id', 'name'])); // { id: 1, name: 'Alice' }
```
```typescript
function pick(obj: T, keys: K[]): Pick {
return keys.reduce((acc, key) => {
if (key in obj) acc[key] = obj[key];
return acc;
}, {} as Pick);
}
const result = pick(user, ['id', 'name']); // { id: 1, name: 'Alice' }
```
존재하지 않는 키는 무시하는 게 안전합니다
API 응답에서 민감한 정보 제거할 때 유용
`Object.fromEntries()` + `filter()`로도 구현 가능
[Lodash pick](https://lodash.com/docs/#pick) | [TypeScript Pick 유틸리티](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys)
개념
`pick(obj, keys)`은 객체에서 지정한 키만 추출해 새 객체를 반환합니다. API 응답에서 필요한 필드만 골라내거나, 큰 객체를 축소할 때 유용합니다.
```javascript
// 기본 구현
function pick(obj, keys) {
return keys.reduce((acc, key) => {
if (key in obj) acc[key] = obj[key];
return acc;
}, {});
}
// 사용
const user = { id: 1, name: 'Alice', email: 'alice@example.com', password: 'secret' };
console.log(pick(user, ['id', 'name'])); // { id: 1, name: 'Alice' }
```
TypeScript 버전
```typescript
function pick
return keys.reduce((acc, key) => {
if (key in obj) acc[key] = obj[key];
return acc;
}, {} as Pick
}
const result = pick(user, ['id', 'name']); // { id: 1, name: 'Alice' }
```
실전 팁
참고
[Lodash pick](https://lodash.com/docs/#pick) | [TypeScript Pick 유틸리티](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys)
👁 0 views
Comments (0)
💬
No comments yet.
Be the first to comment!