문제 설명
function solution(logs, fields)를 작성하세요. 입력과 출력은 모두 JSON으로 표현 가능한 값입니다. 입력 배열과 객체를 직접 변경하면 안 돼요. 외부 라이브러리, 네트워크 요청, 비동기 함수는 사용할 수 없어요. logs:JSON[], fields:string[]. 객체의 키가 fields 중 하나와 대소문자 무관하게 일치하면 값 전체를 '[REDACTED]'로 바꿉니다. 그 외 객체·배열은 재귀적으로 처리합니다. 원시값과 null은 유지합니다. fields의 공백은 제거하지 않습니다. 키 '__proto__'도 일반 키로 보존합니다. 최대 중첩 깊이 20. 순서를 유지한 새 배열을 반환합니다. 입력 범위: 각 입력 배열은 최대 50,000개 항목, 문자열은 최대 1,000자입니다. 숫자는 유한한 값이며, 정수와 합산 결과는 JavaScript의 안전한 정수 범위 안에 있습니다. 그 외 자료형과 유효성 조건은 위 규칙을 따릅니다.
입출력 예시
예시 1
함수 인자
[
[
{
"token": "abc",
"message": "ok"
}
],
[
"token"
]
]반환값
[
{
"token": "[REDACTED]",
"message": "ok"
}
]예시 2
함수 인자
[
[
{
"nested": {
"PASSWORD": "p"
},
"tags": [
"x"
]
}
],
[
"password"
]
]반환값
[
{
"nested": {
"PASSWORD": "[REDACTED]"
},
"tags": [
"x"
]
}
]예시 3
함수 인자
[
[
{
"user": {
"name": "Alex"
},
"token": null
}
],
[
"token"
]
]반환값
[
{
"user": {
"name": "Alex"
},
"token": "[REDACTED]"
}
]