모든 수준까지 중첩을 포함할 수 있는 다음 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 }