ধরুন, আমাদের কাছে একটি নেস্টেড অবজেক্ট আছে যাতে কিছু পোষা প্রাণী সম্পর্কে ডেটা রয়েছে −
const pets = { owner1: 'Frank', owner2: 'Curly', owner3: 'Maurice', dogs: { terriers: { name1: 'Fido', name2: 'Woofy', name3: { goodDog: 'Frank', badDog: 'Judas', } }, poodles: { name1: 'Curly', name2: 'Fido', }, }, };
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই ধরনের একটি বস্তুতে নেয়।
ফাংশনটি অবজেক্টে বিদ্যমান সমস্ত ডুপ্লিকেট মানগুলি সনাক্ত করবে এবং তারপরে ফাংশনটি এমন একটি অ্যারে ফিরিয়ে দেবে যাতে অবজেক্টের সমস্ত ডুপ্লিকেট মান রয়েছে৷
সুতরাং, এই বস্তুর জন্য, আউটপুট −
হওয়া উচিতconst output = ['Frank', 'Curly', 'Fido'];
উদাহরণ
এর জন্য কোড হবে −
const pets = { owner1: 'Frank', owner2: 'Curly', owner3: 'Maurice', dogs: { terriers: { name1: 'Fido', name2: 'Woofy', name3: { goodDog: 'Frank', badDog: 'Judas', } }, poodles: { name1: 'Curly', name2: 'Fido', }, }, }; const recursiveSearch = (obj, map = {}, res = []) => { Object.keys(obj).forEach(key => { if(typeof obj[key] === "object"){ return recursiveSearch(obj[key], map, res); }; map[obj[key]] = (map[obj[key]] || 0) + 1; if(map[obj[key]] === 2){ res.push(obj[key]); } }); return res; }; console.log(recursiveSearch(pets));
আউটপুট
এবং কনসোলে আউটপুট হবে −
[ 'Frank', 'Curly', 'Fido' ]