समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr लेता है, जिसमें संभवतः डुप्लिकेट हो सकते हैं, पहली आर्ग्युमेंट के रूप में और एक पूर्णांक जो सरणी में मौजूद है, दूसरी आर्ग्युमेंट के रूप में।
फ़ंक्शन को उस इंडेक्स को वापस करना चाहिए जिस पर संख्या सरणी में मौजूद है और चूंकि संख्या सरणी में एक से अधिक बार मौजूद हो सकती है, हमें बेतरतीब ढंग से एक इंडेक्स चुनकर वापस करना होगा।
उदाहरण
यदि फ़ंक्शन का इनपुट है:
const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3;
तो आउटपुट होना चाहिए:
const output = 4;
आउटपुट व्याख्या:
संख्या 3 सरणी में इंडेक्स 1, 4 और 7 पर मौजूद है, और चूंकि हमें बेतरतीब ढंग से कोई इंडेक्स चुनना है, इसलिए आउटपुट 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