ধরা যাক, আমাদের একটি ফাংশন লিখতে হবে, বলুন 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