모든 수준까지 중첩을 포함할 수 있는 다음 JSON 개체가 있다고 가정합니다. -
const obj = {
"one": 1,
"two": {
"three": 3
},
"four": {
"five": 5,
"six": {
"seven": 7
},
"eight": 8
},
"nine": 9
}; 이러한 중첩 JSON 객체를 가져와 중첩이 포함되지 않은 새 객체를 반환하고 점 표기법을 사용하여 해당 값을 키에 매핑하는 JavaScript 함수를 작성해야 합니다.
따라서 위의 개체의 경우 출력은 다음과 같아야 합니다. -
const output = {
'one': 1,
'two.three': 3,
'four.five': 5,
'four.six.seven': 7,
'four.eight': 8,
'nine': 9
}; 예시
이에 대한 코드는 -
const obj = {
"one": 1,
"two": {
"three": 3
},
"four": {
"five": 5,
"six": {
"seven": 7
},
"eight": 8
},
"nine": 9
};
const flattenJSON = (obj = {}, res = {}, extraKey = '') => {
for(key in obj){
if(typeof obj[key] !== 'object'){
res[extraKey + key] = obj[key];
}else{
flattenJSON(obj[key], res, `${extraKey}${key}.`);
};
};
return res;
};
console.log(flattenJSON(obj)); 출력
콘솔의 출력은 -
{
one: 1,
'two.three': 3,
'four.five': 5,
'four.six.seven': 7,
'four.eight': 8,
nine: 9
}