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

जावास्क्रिप्ट में एक विशिष्ट योग प्राप्त करने के तरीके

<घंटा/>

समस्या

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

सरणी में प्रत्येक पूर्णांक के लिए, हमारा फ़ंक्शन या तो इसे '+' या '-' असाइन कर सकता है।

हमारे फ़ंक्शन को यह पता लगाना चाहिए कि लक्ष्य योग, लक्ष्य के बराबर सरणी के पूर्णांकों का योग बनाने के लिए '+', '-' असाइन करने के लिए कुल कितने तरीके मौजूद हैं।

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

const arr = [1, 1, 1, 1, 1];
const target = 3;

तब आउटपुट होना चाहिए -

const output = 5;

आउटपुट स्पष्टीकरण:

क्योंकि 5 तरीके हैं -

-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3

उदाहरण

इसके लिए कोड होगा -

const arr = [1, 1, 1, 1, 1];
const target = 3;
const waysToSum = (arr = [], target = 1) => {
   const map = {};
   const find = (arr, target, i) => {
      let val = i + '->' + target;
      if(map[val] !== undefined){
         return map[val];
      };
      if(i === 0){
         if (target === 0 && arr[0] === 0) { return 2 }
         return arr[0] === target || arr[0] === -target ? 1 : 0
      };
      map[val] = find(arr, target + arr[i], i - 1) + find(arr, target - arr[i], i - 1);
      return map[val]
   };
   return find(arr, target, arr.length-1)
};
console.log(waysToSum(arr, target));

आउटपुट

और कंसोल में आउटपुट होगा -

5

  1. जावास्क्रिप्ट में एक चर को परिभाषित करने के विभिन्न तरीके

    JavaScript में वैरिएबल को परिभाषित करने के तीन तरीके हैं - चलो - 2015 में पेश किया गया जावास्क्रिप्ट लेट कीवर्ड हमें ब्लॉक स्कोप्ड वेरिएबल्स को परिभाषित करने की अनुमति देता है। let का उपयोग करके घोषित वेरिएबल्स को फहराया नहीं जाता है। वर - JavaScript var कीवर्ड का उपयोग फंक्शन स्कोप्ड वेरिएबल बनाने

  1. जावास्क्रिप्ट में किसी सरणी को खाली करने के तरीकों की संख्या

    JavaScript में किसी सरणी को खाली करने के चार तरीके हैं - नई सरणी पर सेट करना - इसमें हम अपने एरे वेरिएबल को एक नए खाली एरे में सेट करते हैं। लंबाई संपत्ति का उपयोग करना − इसमें हम अपने ऐरे की लंबाई प्रॉपर्टी को 0 पर सेट करते हैं। पॉप का उपयोग करना - इसमें हम ऐरे एलीमेंट को तब तक लगातार पॉप करते हैं

  1. जावास्क्रिप्ट में नया लक्ष्य

    new.target एक मेटाप्रॉपर्टी है जो हमें रनटाइम पर यह निर्धारित करने की अनुमति देती है कि एक फ़ंक्शनर कंस्ट्रक्टर को new कीवर्ड का उपयोग करके बुलाया गया था या नहीं। जावास्क्रिप्ट में new.target के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <m