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

तत्वों को समूहीकृत करने और जावास्क्रिप्ट में डुप्लीकेट गिनने के लिए कुशल एल्गोरिदम

<घंटा/>

हमें वस्तुओं की एक सरणी मिली है। यदि वस्तु का एक गुण किसी अन्य वस्तु के समान है, तो हम इसे डुप्लिकेट प्रविष्टि मानते हैं।

हम इस संपत्ति के आधार पर वस्तुओं को समूहित करना चाहते हैं और "डुप्लिकेट" कितनी बार हुआ, इस बारे में जानकारी संग्रहीत करना चाहते हैं।

   X A B O
   Y X Z I
   Y X Z U
   X A B L
   Y X Z K

हम पहले मान के आधार पर समूह बनाना चाहते हैं।

प्रत्येक डुप्लिकेट में अन्य दो गुण समान हैं, लेकिन पहले मान की तुलना करना पर्याप्त होगा।

हमें उपयोगकर्ता को ऐसा परिणाम प्रदर्शित करने की आवश्यकता है जो दिखता है -

   Y X Z (3)
   X A B (2)

उदाहरण

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

const arr = [
   {x: 'x', acc: 'acc', val: 'val'},
   {y: 'y', x: 'x', z: 'z'},
   {y: 'y', x: 'x', z: 'z'},
   {x: 'x', c: 'c', val: 'val'}
];
const countOccurrence = (arr = []) => {
   const res = {};
   arr.forEach (item => {
      Object.keys( item ).forEach (prop => {
         ( res[prop] ) ? res[prop] += 1 : res[prop] = 1;
      });
   });
   return res;
}
const groupByOccurrence = (data = []) => {
   const obj = countOccurrence(data);
   const res = Object.keys ( obj ).reduce ( ( acc, val ) => {
      ( acc[obj[val]] ) ? acc[obj[val]].push ( val ) : acc[obj[val]] = [val];
      return acc;
   }, {});
   return res;
}
console.log(groupByOccurrence(arr));

आउटपुट

And the output in the console will be:
{ '1': [ 'acc', 'c' ], '2': [ 'val', 'y', 'z' ], '4': [ 'x' ] }

  1. जावास्क्रिप्ट:आसन्न तत्व उत्पाद एल्गोरिदम

    हमें पूर्णांकों की एक सरणी दी गई है। हमें सबसे बड़े उत्पाद वाले आसन्न तत्वों की जोड़ी को खोजने और उस उत्पाद को वापस करने की आवश्यकता है। उदाहरण के लिए - यदि इनपुट ऐरे है - const arr = [3, 6, -2, -5, 7, 3]; तब आउटपुट 21 होना चाहिए क्योंकि [7, 3] सबसे बड़ा योग वाला जोड़ा है। उदाहरण निम्नलिखित कोड

  1. जावास्क्रिप्ट में जीसीडी की गणना के लिए यूक्लिडियन एल्गोरिथम

    गणित में, यूक्लिड का एल्गोरिथ्म, दो संख्याओं के सबसे बड़े सामान्य भाजक (GCD) की गणना करने की एक विधि है, सबसे बड़ी संख्या जो दोनों को बिना शेष छोड़े विभाजित करती है। यूक्लिडियन एल्गोरिथम इस सिद्धांत पर आधारित है कि दो संख्याओं का सबसे बड़ा सामान्य भाजक नहीं बदलता है यदि बड़ी संख्या को उसके अंतर से

  1. जावास्क्रिप्ट में सरणी तत्वों में डुप्लिकेट सहित कॉमन्स

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