Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में सरणी से यादृच्छिक रूप से अनुक्रमणिका चुनना

<घंटा/>

समस्या

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो संख्याओं की एक सरणी लेता है, एआर, जिसमें संभवतः पहले तर्क के रूप में डुप्लिकेट और दूसरे तर्क के रूप में सरणी में मौजूद एक इंटीजर होता है।

फ़ंक्शन को एक इंडेक्स वापस करना चाहिए जिस पर संख्या सरणी में मौजूद है और चूंकि संख्या सरणी में एक से अधिक बार मौजूद हो सकती है, इसलिए हमें यादृच्छिक रूप से एक इंडेक्स चुनना होगा और उस इंडेक्स को वापस करना होगा।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -

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

  1. जावास्क्रिप्ट ऐरे से () विधि

    जावास्क्रिप्ट की से () विधि का उपयोग किसी ऑब्जेक्ट से किसी ऑब्जेक्ट से एक लंबी संपत्ति या एक चलने योग्य वस्तु के साथ ऐरे ऑब्जेक्ट को वापस करने के लिए किया जाता है। वाक्य रचना इस प्रकार है - Array.from(obj, mapFunction, val) ऊपर, पैरामीटर obj एक सरणी में कनवर्ट करने के लिए ऑब्जेक्ट है, mapFunction

  1. जावास्क्रिप्ट ऐरे फाइंडइंडेक्स () फ़ंक्शन

    यदि शर्त पारित हो जाती है, तो किसी सरणी में पहले तत्व की अनुक्रमणिका को वापस करने के लिए जावास्क्रिप्ट की फाइंडइंडेक्स () विधि का उपयोग किया जाता है। वाक्य रचना इस प्रकार है - array.findIndex(function(currentValue, index, arr), thisValue) आइए अब जावास्क्रिप्ट में फाइंडइंडेक्स () विधि को लागू करें

  1. जावास्क्रिप्ट Array.from () विधि

    Array.from() किसी दिए गए सरणी उदाहरण से एक नया सरणी ऑब्जेक्ट बनाता है। सरणी से () फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-widt