मान लीजिए, हमारे पास एक नेस्टेड ऑब्जेक्ट है जिसमें इस तरह के कुछ पालतू जानवरों के बारे में डेटा है -
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' ]