home

오늘 정리

글 분류
OneThingAtATime
키워드
javascript
생성일
2024/07/12 09:14
최근 수정일
2024/07/30 09:14
작성중
console.time("Direct Assignment"); for (let i = 0; i < 1000000; i++) { const result = {}; result.key = "value"; } console.timeEnd("Direct Assignment"); console.time("Object.assign"); for (let i = 0; i < 1000000; i++) { const result = {}; Object.assign(result, { key: "value" }); } console.timeEnd("Object.assign");
TypeScript
복사
Object.assign보다 Direct Assignment가 미미하지만 더 빠르다.

globalOmit

before

export const globalOmit = <T extends object>(targetObj: T, ...keys: (keyof T)[]) => { if (typeof targetObj === "object" && targetObj !== null) { const result: Partial<T> = {}; const targetObjKeys = Object.keys(targetObj); targetObjKeys.forEach((_currentKey) => { const currentKey = _currentKey as keyof T; if (!keys.includes(currentKey)) { Object.assign(result, { [currentKey]: targetObj[currentKey] }); } }); return result; } return null; };
TypeScript
복사

after

export const globalOmit = <T extends object>(targetObj: T, ...keys: (keyof T)[]) => { if (typeof targetObj === "object" && targetObj !== null) { return Object.keys(targetObj).reduce((result, _currentKey) => { const currentKey = _currentKey as keyof T; if (!keys.includes(currentKey)) { result[currentKey] = targetObj[currentKey]; } return result; }, {} as Partial<T>); } return null; };
TypeScript
복사