다음과 같은 객체가 있다고 가정해 보겠습니다. -
const obj ={ "firstName":"John", "lastName":"Green", "car.make":"Honda", "car.model":"Civic", "car.revisions.0. 마일":10150, "car.revisions.0.code":"REV01", "car.revisions.0.changes":"", "car.revisions.1.miles":20021, "car.revisions.1 .code":"REV02", "car.revisions.1.changes.0.type":"asthetic", "car.revisions.1.changes.0.desc":"왼쪽 타이어 캡", "car.revisions" .1.changes.1.type":"mechanic", "car.revisions.1.changes.1.desc":"엔진 압력 조절기", "visits.0.date":"2015-01-01", "visits.0.dealer":"DEAL-001", "visits.1.date":"2015-03-01", "visits.1.dealer":"DEAL-002"};
우리는 그러한 객체 하나를 가져와 중첩 객체와 배열로 평면화하는 JavaScript 함수를 작성해야 합니다.
따라서 위 배열의 출력은 다음과 같아야 합니다. -
const output ={ firstName:'John', lastName:'Green', car:{ make:'Honda', 모델:'Civic', 리비전:[ { 마일:10150, 코드:'REV01', 변경 사항:''}, { 마일:20021, 코드:'REV02', 변경 사항:[ { type:'asthetic', desc:'왼쪽 타이어 캡' }, { type:'mechanic', desc:'엔진 압력 조절기' } ] } ] }, 방문:[ { 날짜:'2015-01-01', 딜러:'DEAL-001' }, { 날짜:'2015-03-01', 딜러:'DEAL-002' } ]};사전>예시
const obj ={ "firstName":"John", "lastName":"Green", "car.make":"Honda", "car.model":"Civic", "car.revisions.0. 마일":10150, "car.revisions.0.code":"REV01", "car.revisions.0.changes":"", "car.revisions.1.miles":20021, "car.revisions.1 .code":"REV02", "car.revisions.1.changes.0.type":"asthetic", "car.revisions.1.changes.0.desc":"왼쪽 타이어 캡", "car.revisions" .1.changes.1.type":"mechanic", "car.revisions.1.changes.1.desc":"엔진 압력 조절기", "visits.0.date":"2015-01-01", "visits.0.dealer":"DEAL-001", "visits.1.date":"2015-03-01", "visits.1.dealer":"DEAL-002"}; const unflatten =(obj ={}) => { const 결과 ={}; let temp, 부분 문자열, 속성, i; for (obj의 속성) { substrings =property.split('.'); 온도 =결과; for (i =0; i출력
콘솔의 출력은 -
{ "firstName":"John", "lastName":"Green", "car":{ "make":"Honda", "model":"Civic", "revisions":[ { "miles" :10150, "코드":"REV01", "변경":"" }, { "마일":20021, "코드":"REV02", "변경":[ { "유형":"아스틱", "데스크" ":"왼쪽 타이어 캡" }, { "type":"mechanic", "desc":"엔진 압력 조절기" } ] } }, "visits":[ { "date":"2015-01-01" , "딜러":"DEAL-001" }, { "날짜":"2015-03-01", "딜러":"DEAL-002" } ]}