কম্পিউটার

বস্তুর প্রতিটি সম্পত্তি জাভাস্ক্রিপ্টে পুনরাবৃত্তিমূলকভাবে একই কিনা তা কীভাবে পরীক্ষা করবেন?


ধরা যাক, আমাদের একটি ফাংশন লিখতে হবে, বলুন isSame() যা একটি নেস্টেড অবজেক্ট গ্রহণ করে এবং একটি বুলিয়ান রিটার্ন করে তা নির্ভর করে সমস্ত কীগুলির একই মান আছে কিনা। যদি একটি কী এর মান হিসাবে একটি নেস্টেড অবজেক্ট থাকে, তাহলে আমাদের নেস্টেড অবজেক্টের শেষ পর্যন্ত যেতে হবে এবং সেই মানটি পরীক্ষা করতে হবে।

যেমন − যদি বস্তুটি −

হয়
const obj = {
   a: 1,
   b: 1,
   c: {
      aa: 1
   }
};

তারপরে ফাংশনটি সত্য হওয়া উচিত কারণ সমস্ত শেষ কী একই মান (1)। অতএব, আসুন এই সমস্যার একটি পুনরাবৃত্তিমূলক সমাধান লিখি।

উদাহরণ

const obj = {
   a: 1,
   b: 1,
   c: {
      aa: 3
   }
};
const allSame = (obj, value) => {
   const keys = Object.keys(obj);
   for(let i = 0; i < keys.length; i++){
      if(typeof obj[keys[i]] === "object" &&
      !Array.isArray(obj[keys[i]])){
         return allSame(obj[keys[i]], value);
      };
      if(!value){
         value = obj[keys[i]];
         continue;
      }
      if(obj[keys[i]] !== value){
         return false;
      };
   };
   return true;
}
console.log(allSame(obj));
console.log(allSame({ a: 1, b: 1, c: { aa: 1 } }));
console.log(allSame({ a: { x: 1 }, b: 1, c: { aa: 1 } }));
console.log(allSame({ a: 1, b: 1, c: { aa: 2 } }));

আউটপুট

কনসোলে আউটপুট হবে −

false
true
true
false

  1. কিভাবে একটি জাভাস্ক্রিপ্ট বস্তু থেকে একটি সম্পত্তি অপসারণ?

  2. আমরা কি জাভাস্ক্রিপ্ট সহ একটি বস্তুর মধ্যে একটি সম্পত্তি আছে কিনা তা পরীক্ষা করতে পারি?

  3. জাভাস্ক্রিপ্টের সাথে একই অ্যারের একটি অ্যারের উপাদানগুলিকে কীভাবে নকল করবেন?

  4. একটি বস্তু জাভাস্ক্রিপ্টে একটি ক্লাসের একটি উদাহরণ কিনা তা কিভাবে পরীক্ষা করবেন?