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

JavaScript में सेट के लिए पावर सेट (Power Set) ढूंढना


एक सेट S का पावर सेट, S के सभी उपसमुच्चयों का समुच्चय होता है, जिसमें खाली सेट और S स्वयं शामिल होता है। सेट S के पावर सेट को P(S) से दर्शाया जाता है।

उदाहरण के लिए

यदि S = {x, y, z}, तो उपसमुच्चय हैं -

{
  {},
  {x},
  {y},
  {z},
  {x, y},
  {x, z},
  {y, z},
  {x, y, z}
}

हमें एक JavaScript फ़ंक्शन लिखना है जो एकमात्र तर्क के रूप में एक सरणी लेता है। फ़ंक्शन को इनपुट सरणी के लिए पावर सेट ढूंढना और वापस करना चाहिए।

उदाहरण

निम्नलिखित कोड देखें:

const set = ['x', 'y', 'z'];

const powerSet = (arr = []) => {
  const res = [];
  const { length } = arr;
  const numberOfCombinations = 2 ** length;
  for (let combinationIndex = 0; combinationIndex < numberOfCombinations; combinationIndex += 1) {
    const subSet = [];
    for (let setElementIndex = 0; setElementIndex < arr.length; setElementIndex += 1) {
      if (combinationIndex & (1 << setElementIndex)) {
        subSet.push(arr[setElementIndex]);
      };
    };
    res.push(subSet);
  };
  return res;
};

console.log(powerSet(set));

आउटपुट

कंसोल पर निम्नलिखित आउटपुट प्राप्त होगा:

[
  [],
  [ 'x' ],
  [ 'y' ],
  [ 'x', 'y' ],
  [ 'z' ],
  [ 'x', 'z' ],
  [ 'y', 'z' ],
  [ 'x', 'y', 'z' ]
]

  1. जावास्क्रिप्ट में एरे बनाम सेट जावास्क्रिप्ट में एरे बनाम सेट

    Set डेटा टाइप को ES2015 में पेश किया गया था और एरे और सेट के बीच अंतर यह है कि जहां एरे में डुप्लिकेट वैल्यूज हो सकती हैं, वहीं सेट में नहीं हो सकतीं। एरे में एलिमेंट्स को इंडेक्स का उपयोग करके एक्सेस किया जा सकता है जो सेट में संभव नहीं है क्योंकि यह कीज़ का उपयोग करता है और एलिमेंट्स को केवल उसी

  1. जावास्क्रिप्ट में for...in स्टेटमेंट समझाया गया जावास्क्रिप्ट में for...in स्टेटमेंट समझाया गया

    for...in लूप ऑब्जेक्ट की सभी प्रॉपर्टीज के माध्यम से लूप करता है। जावास्क्रिप्ट में for..in स्टेटमेंट को लागू करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0

  1. JavaScript में प्रत्येक नोड के लिए अगला बड़ा नोड खोजना JavaScript में प्रत्येक नोड के लिए अगला बड़ा नोड खोजना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो लिंक्ड लिस्ट के हेड को पहले और एकमात्र आर्गुमेंट के रूप में लेता है। node_i.val, और j सबसे छोटा संभव विकल्प है। यदि ऐसा j मौजूद नहीं है, तो अगला बड़ा मान 0 है। हमारे फ़ंक्शन को एक सरणी तैयार करके वापस करनी चाहिए जिसमें संबंधित तत्व सूची में तत्व के लिए