다음과 같은 JSON 객체가 있다고 가정합니다.
const obj = {
"context": {
"device": {
"localeCountryCode": "AX",
"datetime": "3047-09-29T07:09:52.498Z"
},
"currentLocation": {
"country": "KM",
"lon": -78789486,
}
}
}; 우리는 초기에 그러한 배열을 취하는 JavaScript 재귀 함수를 작성해야 합니다. 함수는 위의 객체를 "label" - "children" 형식으로 분할해야 합니다.
따라서 위의 개체에 대한 출력은 다음과 같아야 합니다. -
const output = {
"label": "context",
"children": [
{
"label": "device",
"children": [
{
"label": "localeCountryCode"
},
{
"label": "datetime"
}
]
},
{
"label": "currentLocation",
"children": [
{
"label": "country"
},
{
"label": "lon"
}
]
}
]
} 이에 대한 코드는 -
예시
const obj = {
"context": {
"device": {
"localeCountryCode": "AX",
"datetime": "3047-09-29T07:09:52.498Z"
},
"currentLocation": {
"country": "KM",
"lon": -78789486,
}
}
};
const transformObject = (obj = {}) => {
if (obj && typeof obj === 'object') {
return Object.keys(obj).map((el) => {
let children = transformObject(obj[el]); return children ? {
label: el, children: children } : {
label: el
};
});
};
};
console.log(JSON.stringify(transformObject(obj), undefined, 4)); 출력
콘솔의 출력은 -
[
{
"label": "context",
"children": [
{
"label": "device",
"children": [
{
"label": "localeCountryCode"
},
{
"label": "datetime"
}
]
},
{
"label": "currentLocation",
"children": [
{
"label": "country"
},
{
"label": "lon"
}
]
}
]
}
]