মান লিজিয়ে, আমাদের একটি isSame() ফাংশন লিখতে হবে যা একটি নেস্টেড অবজেক্ট গ্রহণ করে এবং একটি বুলিয়ান রিটার্ন করবে এই ফ্যাক্টের উপর ভিত্তি করে যে সব কী-গুলোর মান একই কিনা। "সব কী" বলতে আমরা সব শেষ কী বুঝি, অর্থাৎ যদি কোনো কী-এর মান নেস্টেড অবজেক্ট হয়, তবে আমাদের সেটির শেষ পর্যন্ত ট্রাভার্স করে সেটির মান চেক করতে হবে।
উদাহরণস্বরূপ - যদি অবজেক্ট হয়:
const obj = { a: 1, b: 1, c: { aa: 1 } };তবে ফাংশনটি true রিটার্ন করবে কারণ সব শেষ কী-গুলোর মান একই (১)। তাহলে, এই সমস্যার একটি রিকার্সিভ সমাধান লিখি।
উদাহরণ
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