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

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


समस्या

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

सरणी arr हमेशा सम लंबाई की होगी।

हमारे फ़ंक्शन को true वापस करना चाहिए यदि और केवल यदि इसे पुनः क्रमबद्ध करना संभव है जैसे कि arr[2 * i + 1] = 2 * arr[2 * i] हर 0 <= i < length(arr) / 2 के लिए।

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

const arr = [4, -2, 2, -4];

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

const output = true;

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

हम दो समूह ले सकते हैं, [-2,-4] और [2,4] से [-2,-4,2,4] या [2,4,-2,-4] बना सकते हैं।

उदाहरण

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

const arr = [4, -2, 2, -4]; 
const canRearrange = (arr = []) => { 
  const map = arr.reduce((acc, num) => { 
    acc[num] = (acc[num] || 0) + 1; 
    return acc; 
  }, {}); 
  const keys = Object.keys(map) 
    .map(key => Number(key)) 
    .sort((a, b) => a - b); 
  for (const key of keys) { 
    if (key < 0) { 
      while (map[key] > 0) { 
        if (map[key / 2] > 0) { 
          map[key] -= 1; 
          map[key / 2] -= 1; 
        } else { 
          return false; 
        } 
      } 
    } else { 
      while (map[key] > 0) { 
        if (map[key * 2] > 0) { 
          map[key] -= 1; 
          map[key * 2] -= 1; 
        } else { 
          return false; 
        } 
      } 
    } 
  } 
  return true; 
}; 
console.log(canRearrange(arr));

आउटपुट

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

true

  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> आउटपुट यहां क