मान लीजिए, हमें एक फ़ंक्शन लिखने की आवश्यकता है, कहते हैं 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