কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে JSON অবজেক্ট ফ্ল্যাটেন (Flatten) করা


মনে করুন, আমাদের নিচের মতো একটি নেস্টেড JSON অবজেক্ট আছে যেটে যেকোনো লেভেল পর্যন্ত নেস্টিং থাকতে পারে —

const obj = { 
  "one": 1, 
  "two": { 
    "three": 3 
  }, 
  "four": { 
    "five": 5, 
    "six": { 
      "seven": 7 
    }, 
    "eight": 8 
  }, 
  "nine": 9 
};

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি নেস্টেড JSON অবজেক্ট গ্রহণ করবে এবং একটি নতুন অবজেক্ট রিটার্ন করবে যেটে কোনো নেস্টিং নেই এবং ডট নোটেশন (dot notation) ব্যবহার করে কীগুলোর সাথে মানগুলো ম্যাপ করা থাকবে।

অতএব, উপরের অবজেক্টের জন্য আউটপুট হবে কিছু 이와ভাবে —

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 
}

  1. জাভাস্ক্রিপ্টে Map অবজেক্ট

  2. জাভাস্ক্রিপ্টে Blob অবজেক্ট

  3. জাভাস্ক্রিপ্টে RegExp অবজেক্ট

  4. জাভাস্ক্রিপ্টে অবজেক্ট ইলিশিয়ালাইজার