카테고리 없음

[JavaScript] 심볼키는 Object.keys() 매서드로 액세스 할 수 없음 그렇다면? Object.getOwnPropertySymbols()

보리시스템 2024. 2. 15.

 

params.rangeDate가 Symbol을 사용하여 구현된 비교 연산자(gte: greater than or equal to, lte: less than or equal to)를 가진 객체입니다. 이러한 심볼 키는 Object.keys() 메서드로 엑세스할 수 없습니다. Object.keys()는 해당 객체의 enumerable한 속성들의 배열을 반환하는데, 심볼은 enumerable하지 않기 때문에 이러한 키들은 반환되지 않습니다.
대신에, Symbol.iterator를 사용하여 이러한 특별한 키들을 직접 접근할 수 있습니다. 
const rangeDateKeys = Object.getOwnPropertySymbols(params.rangeDate); 
if (rangeDateKeys.length !== 0) { 
	eventRewardWhereClause.created = params.rangeDate; 
}
위 코드는 Symbol로 정의된 키들을 가져와서 그 수를 계산합니다. 만약 이 수가 0이 아니면, 이는 params.rangeDate에 심볼 키들이 존재한다는 것을 의미하고, 이를 이용하여 whereClause에 추가할 수 있습니다.