समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो संख्याओं की एक सरणी लेता है, एआर, जिसमें संभवतः पहले तर्क के रूप में डुप्लिकेट और दूसरे तर्क के रूप में सरणी में मौजूद एक इंटीजर होता है।
फ़ंक्शन को एक इंडेक्स वापस करना चाहिए जिस पर संख्या सरणी में मौजूद है और चूंकि संख्या सरणी में एक से अधिक बार मौजूद हो सकती है, इसलिए हमें यादृच्छिक रूप से एक इंडेक्स चुनना होगा और उस इंडेक्स को वापस करना होगा।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3;
तब आउटपुट होना चाहिए -
const output = 4;
आउटपुट स्पष्टीकरण:
एरे में इंडेक्स 1, 4 और 7 पर नंबर 3 मौजूद है, और चूंकि हमें किसी भी इंडेक्स को रैंडमली चुनना होता है, इसलिए आउटपुट 1 में से कोई भी हो सकता है।
उदाहरण
इसके लिए कोड होगा -
const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3; Array.prototype.pick = function(target) { const targets = [] this.findTarget(0, this.length, target, targets); return targets[Math.floor(Math.random() * targets.length)]; }; Array.prototype.findTarget = function(start, end, target, targets) { if(start + 1 === end || start === end) { if(this[start] === target) targets.push(start); return; } let j = start + Math.floor((end - start)/2); this.findTarget(start, j, target, targets); this.findTarget(j, end, target, targets); }; console.log(arr.pick(num));
आउटपुट
कंसोल में आउटपुट होगा -
4