omit
지정한 키를 제외한 Map의 복사본을 반환합니다.
Map<K, V> omit<K, V>(Iterable<K> keysToOmit, Map<K, V> map)
강의
omit은 원본의 모든 항목을 그대로 담은 새 Map을
만들되, 나열한 키만 제외합니다 —
원본 맵은 절대 변경되지 않습니다.
keysToOmit에 넣었지만 실제로는 맵에 없는 키는
그냥 무시되며, 제거 목록에 여분의 키가 섞여 있어도 오류가 나지 않습니다.
민감 정보 제거나 직렬화에 흔히 쓰이는 도구입니다. 사용자 객체를 로깅하기 전에
비밀번호 해시를 걷어 내거나, 응답을 보내기 전에 내부 필드를 빼는 식이죠.
map()과 함께 쓰면 맵으로 이루어진 목록 전체를 한 번에
가릴 수 있습니다.
데모 1 · 기본
데모 2 · 목록 전체에서 민감 정보 제거하기
직접 해 보기
연습: omit으로 config에서 'debug' 키를 제거해 보세요.
관련 항목:
pick — 반대로, 일부 키만 남기기 ·
omitBy — 키 목록 대신 술어로 제거하기 ·
compactObject — 값이 null인 키 제거하기 ·
fromEntries — Map을 처음부터 만들기