네, 가능합니다. Object.fromEntries() 메서드와 substr() 메서드를 함께 사용하면 객체 키에서 원하는 부분 문자열만 추출할 수 있습니다. substr() 안에는 부분 문자열을 시작할 인덱스와 잘라낼 문자열의 길이를 지정합니다.
동작 원리
Object.entries()는 객체를 [키, 값] 쌍의 배열로 변환하고, map()으로 각 키에 substr()을 적용한 뒤, 마지막에 Object.fromEntries()가 다시 배열을 객체 형태로 되돌려 줍니다.
예제
const originalString = {
"John 21 2010" :1010,
"John 24 2012" :1011,
"John 22 2014" :1012,
"John 22 2016" :1013,
}
const result = Object.fromEntries(Object.entries(originalString).
map(([k, objectValue])=>
[k.substr(0, k.length-5), objectValue]));
console.log(result)위 예제에서는 각 키의 끝에서 5자리(연도 부분)를 제거하여 "John 21", "John 24"처럼 이름과 나이만 남긴 새로운 객체를 생성합니다.
프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo41.js라고 가정합니다.
출력 결과
코드를 실행하면 다음과 같은 결과가 출력됩니다.
PS C:\Users\Amit\JavaScript-code> node demo41.js
{ 'John 21': 1010, 'John 24': 1011, 'John 22': 1013 }결과를 보면 각 키에서 연도 정보가 제거되고, 값은 그대로 유지된 새로운 객체가 만들어진 것을 확인할 수 있습니다.