Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 JSON 객체 병합

<시간/>

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