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

JavaScript में पहले n पदों की प्रोग्रेसन में डुप्लिकेट तत्व ढूंढना


मान लीजिए, हमें नंबर्स का एक ऐरे दिया गया है जिसमें पहले n नेचुरल नंबर हैं, लेकिन एक तत्व ऐरे में दो बार आता है, इसलिए तत्वों की कुल संख्या n+1 है। हमारा काम एक फ़ंक्शन लिखना है जो ऐरे को लेता है और उस नंबर को रैखिक समय में लौटाता है जो ऐरे में दो बार आता है।

विधि 1: Array.prototype.reduce() का उपयोग करना

यह थोड़ा पेचीदा दृष्टिकोण है लेकिन लिखे गए कोड के संदर्भ में सबसे संकुचित है। पहले, इसके लिए कोड देखते हैं:

const arr = [1,4,8,5,6,7,9,2,3,7];
const duplicate = a => a.reduce((acc, val, ind) => val+acc- (ind+1))+a.length-1;
console.log(duplicate(arr));

यहां हमने reduce फ़ंक्शन का उपयोग किया है, इसका कॉलबैक, जो ऐरे के प्रत्येक तत्व के लिए एक बार संचालित होता है, हमारे मामले में तीन आर्गुमेंट लेता है:

  • acc → एक्युमुलेटर, पिछले पास में लौटाया गया मान,
  • val → वर्तमान तत्व मान,
  • ind → वर्तमान तत्व का इंडेक्स

अब, आइए अपने कोड को इस ऐरे पर लागू करें:

[ 2, 3, 1, 2]

चूंकि इस ऐरे की लंबाई 4 है, कॉलबैक फ़ंक्शन के कुल 4 पास होने चाहिए, लेकिन चूंकि हमने reduce() फ़ंक्शन को initialValue आर्गुमेंट प्रदान नहीं किया है, पुनरावृत्ति इंडेक्स 1 से शुरू होगी और एक्युमुलेटर को शुरुआत में शून्यवें इंडेक्स पर मान निर्दिष्ट किया जाएगा, इसलिए कुल 3 पास होंगे।

पहला पास

acc = 2, val = 3, ind = 1 return value = 2+3 - (1+1) = 3

दूसरा पास

acc = 3, val = 1, ind = 2 return value = 3+1 - (2+1) = 1

तीसरा पास

acc = 1, val = 2, ind = 3 return value = 1+2 - (3+1) = -1

ऐरे का अंत

इसलिए -1 ऐरे से लौटाया जाता है, और फिर

-1 + (4-1) = -1 + 3 = 2

duplicate() फ़ंक्शन से लौटाया जाता है, जो वास्तव में सही परिणाम है।

विधि 2: Array.prototype.forEach()

इस विधि में, हम ऐरे पर पुनरावृति करते हैं, इसका योग प्राप्त करते हैं, और इससे पहले (n-1) नेचुरल नंबरों के योग को घटाते हैं, जहां n ऐरे की लंबाई है, जो बचता है वह वह नंबर है जो दो बार दोहराया गया था, इसलिए हम इसे लौटाते हैं।

उदाहरण

const arr = [1,4,8,5,6,7,9,2,3,7];
const duplicate = a => {
  let sum = 0;
  const { length: n } = a;
  a.forEach(num => sum += num);
  return sum - ((n*(n-1))/2);
}
console.log(duplicate(arr));

आउटपुट

कंसोल में आउटपुट होगा:

7

  1. - जावास्क्रिप्ट में ऐरे के मिन/मैक्स एलिमेंट कैसे ढूंढें?

    ऐरे के मिन और मैक्स एलिमेंट प्राप्त करने के लिए, जावास्क्रिप्ट में Math.min() और Math.max() मेथड का उपयोग करें। न्यूनतम और अधिकतम एलिमेंट ढूंढने के लिए निम्नलिखित कोड चलाएं:उदाहरण<html>    <body>       <script>          var arr = [5

  1. - जावास्क्रिप्ट ऐरे में पहला और अंतिम एलिमेंट

    एक ऐरे एलिमेंट्स का समूह होता है। प्रत्येक एलिमेंट का अपना इंडेक्स मान होता है। हम इन इंडेक्सेस का उपयोग करके किसी भी एलिमेंट को एक्सेस कर सकते हैं। लेकिन अंतिम एलिमेंट के मामले में, हम इंडेक्स नहीं जानते जब तक हम ऐरे में मौजूद एलिमेंट्स की संख्या नहीं जानते। इस मामले में, हमें तर्क का उपयोग करना हो

  1. जावास्क्रिप्ट एरे में एलिमेंट कैसे खोजें? जावास्क्रिप्ट एरे में एलिमेंट कैसे खोजें?

    जावास्क्रिप्ट एरे में एलिमेंट खोजने के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>    body {