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

जावास्क्रिप्ट में तत्वों की बढ़ती आवृत्ति के आधार पर छँटाई सरणी

<घंटा/>

समस्या

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

सरणी गिरफ्तारी, कुछ डुप्लीकेट हो सकते हैं। हमारा कार्य सरणी को इस तरह से सॉर्ट करना है कि जो तत्व कम से कम संख्या में दिखाई देते हैं उन्हें पहले रखा जाता है और उसके बाद बढ़ती आवृत्ति में तत्व होते हैं।

यदि दो तत्व समान संख्या में सरणी में दिखाई देते हैं तो उन्हें बढ़ते क्रम में रखा जाना चाहिए।

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

इनपुट

const arr = [5, 4, 5, 4, 2, 1, 12];

आउटपुट

const output = [1, 2, 12, 4, 4, 5, 5];

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

संख्या 1, 2 और 12 सभी एक बार दिखाई देते हैं इसलिए बढ़ते क्रम में क्रमबद्ध होते हैं और फिर 4 और 5 दोनों दो बार दिखाई देते हैं।

उदाहरण

निम्नलिखित कोड है -

const arr = [5, 4, 5, 4, 2, 1, 12];
const sortByAppearance = (arr = []) => {
   arr.sort((a, b) => a - b);
   const res = [];
   const searched = {};
   const countAppearance = (list, target) => {
      searched[target] = true;
      let count = 0;
      let index = list.indexOf(target);
      while(index !== -1){
         count++;
         list.splice(index, 1);
         index = list.indexOf(target);
      };
      return count;
   };

   const map = [];
   arr.forEach(el => {
      if(!searched.hasOwnProperty(el)){
         map.push([el, countAppearance(arr.slice(), el)]);
      };
   });
   map.sort((a, b) => a[1] - b[1]);

   map.forEach(([num, freq]) => {
      while(freq){
         res.push(num);
         freq--;
      }
   });
   return res;
};
console.log(sortByAppearance(arr));

आउटपुट

[1, 2, 12, 4, 4, 5, 5]

  1. जावास्क्रिप्ट में सरणी की असमान छँटाई

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं की एक सरणी लेता है, एआर, एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को इस सरणी को इस तरह से सॉर्ट करना चाहिए कि सॉर्ट करने के बाद, तत्वों को इस पैटर्न का पालन करना चाहिए - arr[0] < arr[1] > arr[2] < arr[3].... उदाहरण के लिए, यदि

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

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

  1. जावास्क्रिप्ट में बढ़ते क्रम में सरणी को परिवर्तित करना

    बढ़ते क्रम हम एक सरणी को बढ़ते हुए परिभाषित करते हैं यदि arr[i] <=arr[i + 1] प्रत्येक i (0-आधारित) के लिए धारण करता है जैसे कि (0 <=i <=n - 2)। समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पूर्णांकों की एक सरणी लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को यह नि