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

JavaScript में सरणी तत्वों को पुनर्व्यवस्थित करना


समस्या

JavaScript फ़ंक्शन जो पहले और एकमात्र आर्गुमेंट के रूप में literals की एक सरणी arr लेता है। इस सरणी में कुछ डुप्लिकेट आसन्न रूप से रखे गए हैं।

हमारे फ़ंक्शन को सरणी के तत्वों को इस तरह पुनर्व्यवस्थित करना चाहिए कि सरणी में कोई दो तत्व समान न हों। हमारे फ़ंक्शन को पुनर्व्यवस्थित सरणी वापस करनी चाहिए, यह देखते हुए कि ऐसी व्यवस्था का कम से कम एक संभावित तरीका मौजूद होने की गारंटी है।

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

const arr = [7, 7, 7, 8, 8, 8];

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

const output = [7, 8, 7, 8, 7, 8];

आउटपुट व्याख्या:

अन्य सही संभावित पुनर्व्यवस्थाएं भी हो सकती हैं।

उदाहरण

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

const arr = [7, 7, 7, 8, 8, 8]; 
const rearrangeArray = (arr = []) => { 
  const map = arr.reduce((acc, val) => { 
    acc[val] = (acc[val] || 0) + 1; 
    return acc; 
  }, {}); 
  const keys = Object.keys(map).sort((a, b) => map[a] - map[b]); 
  const res = []; 
  let key = keys.pop(); 
  for(let i = 0; i < arr.length; i += 2){ 
    if(map[key] <= 0){ 
      key = keys.pop(); 
    }; 
    map[key] -= 1; 
    res[i] = Number(key); 
  }; 
  for(let i = 1; i < arr.length; i += 2){ 
    if(map[key] <= 0){ 
      key = keys.pop(); 
    }; 
    map[key] -= 1; 
    res[i] = Number(key); 
  }; 
  return res; 
}; 
console.log(rearrangeArray(arr));

आउटपुट

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

[ 8, 7, 8, 7, 8, 7 ]

  1. जावास्क्रिप्ट array.flatMap() मेथड जावास्क्रिप्ट array.flatMap() मेथड

    जावास्क्रिप्ट का array.flatMap() मेथड इनपुट एरे एलिमेंट को एक नए एरे में फ्लैट करने के लिए उपयोग किया जाता है। यह पहले प्रत्येक एलिमेंट को मैप फंक्शन का उपयोग करके मैप करता है और फिर परिणाम को एक लेवल तक फ्लैट करता है। सिंटैक्स इस प्रकार है: array.flatMap(function callback(currentValue, index, arra

  1. जावास्क्रिप्ट Array slice() मेथड जावास्क्रिप्ट Array slice() मेथड

    जावास्क्रिप्ट का slice() मेथड एरे में चुने गए एलिमेंट्स को लौटाने के लिए उपयोग किया जाता है। सिंटैक्स इस प्रकार है: array.slice(start, end) ऊपर, start पैरामीटर एक पूर्णांक है जो चयन शुरू करने का स्थान निर्दिष्ट करता है, जबकि end वह स्थान है जहां चयन समाप्त होता है। उदाहरण 1 <!DOCTYPE html>

  1. JavaScript array.values() मेथड JavaScript array.values() मेथड

    JavaScript array.values() एक इटरेटर ऑब्जेक्ट लौटाता है जिसमें दिए गए ऐरे के सभी मान होते हैं। उदाहरण { fillEle.innerHTML = ; for (let x of arr.values()) { fillEle.innerHTML += x + </br>; } }); </script> </body> </html> आउटपुट यहां क