성능을 가져 오는 향신료를 추가합니다. 이 스레드 벨로우즈 확인
https://github.com/googleapis/google-api-nodejs-client/issues/375
delete 연산자를 사용하면 V8 히든 클래스 패턴에 성능이 저하됩니다. 일반적으로 사용하지 않는 것이 좋습니다.
또는 개체 고유의 열거 가능한 속성을 제거하려면 해당 속성없이 새 개체 복사본을 만들 수 있습니다 (lodash 사용 예제).
_.omit (o, 'prop', 'prop2')
또는 속성 값을 null 또는 undefined (JSON으로 직렬화 할 때 암시 적으로 무시 됨)로 정의 할 수도 있습니다.
o.prop = 정의되지 않음
파괴적인 방법도 사용할 수 있습니다.
const {remov1, remov2, ...new} = old;
old = new;
그리고 더 실용적인 예 :
this._volumes[this._minCandle] = undefined;
{
const {[this._minCandle]: remove, ...rest} = this._volumes;
this._volumes = rest;
}
보시다시피 [somePropsVarForDynamicName]: scopeVarName동적 이름에 구문을 사용할 수 있습니다 . 그리고 모든 것을 대괄호 (새 블록)로 묶어 나머지는 가비지 수집됩니다.
여기 테스트 :

exec :

또는 다음과 같은 기능을 사용할 수 있습니다.
function deleteProps(obj, props) {
if (!Array.isArray(props)) props = [props];
return Object.keys(obj).reduce((newObj, prop) => {
if (!props.includes(prop)) {
newObj[prop] = obj[prop];
}
return newObj;
}, {});
}
타이프 스크립트 용
function deleteProps(obj: Object, props: string[]) {
if (!Array.isArray(props)) props = [props];
return Object.keys(obj).reduce((newObj, prop) => {
if (!props.includes(prop)) {
newObj[prop] = obj[prop];
}
return newObj;
}, {});
}
용법:
let a = {propH: 'hi', propB: 'bye', propO: 'ok'};
a = deleteProps(a, 'propB');
a = deleteProps(a, ['propB', 'propO']);
이렇게하면 새 개체가 생성됩니다. 그리고 물체의 빠른 속성이 유지됩니다. 중요하거나 중요 할 수 있습니다. 매핑 및 개체에 여러 번 액세스하는 경우.
또한 연결 undefined하는 것도 좋은 방법이 될 수 있습니다. 당신이 그것을 감당할 수있을 때. 키의 경우 값도 확인할 수 있습니다. 예를 들어 모든 활성 키를 얻으려면 다음과 같이하십시오.
const allActiveKeys = Object.keys(myObj).filter(k => myObj[k] !== undefined);
const allActiveKeys = Object.keys(myObj).filter(k => myObj[k]);
Undefined는 큰 목록에는 적합하지 않습니다. 또는 많은 소품이 들어 오면서 시간이 지남에 따라 개발됩니다. 메모리 사용량이 계속 증가하고 정리되지 않을 것입니다. 따라서 사용법에 따라 다릅니다. 그리고 새로운 개체를 만드는 것이 좋은 방법 인 것 같습니다.
그런 다음 Premature optimization is the root of all evil의지가 시작됩니다. 따라서 트레이드 오프를 인식해야합니다. 필요한 것과 그렇지 않은 것.
lodash의 _.omit ()에 대한 참고 사항
버전 5에서 제거되었습니다. repo에서 찾을 수 없습니다. 그리고 여기에 그것에 대해 이야기하는 문제가 있습니다.
https://github.com/lodash/lodash/issues/2930
v8
https://v8.dev/blog/fast-properties 좋은 읽기를 확인할 수 있습니다.