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

JavaScript में दो सरणियों को संतुलित करना

समस्या

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

arr1 और arr2 में तत्वों का योग अलग है। हमारे फ़ंक्शन को पहली सरणी से एक तत्व चुनकर दूसरी सरणी में डालना चाहिए और दूसरी सरणी से एक तत्व चुनकर पहली सरणी में डालना चाहिए ताकि दोनों सरणियों के तत्वों का योग बराबर हो जाए। हमें इन दो तत्वों की एक सरणी वापस करनी चाहिए।

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

इनपुट

const arr1 = [1, 2, 5];
const arr2 = [2, 4];

आउटपुट

const output = [5, 4];

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

क्योंकि यदि हम 5 को arr1 से हटाकर arr2 में डालते हैं और 4 को arr2 से हटाकर arr1 में डालते हैं तो दोनों सरणियों का योग बराबर हो जाएगा (7)।

उदाहरण

const arr1 = [1, 2, 5];
const arr2 = [2, 4];
const balanceArrays = (arr1 = [], arr2 = []) => {
  const sumA = arr1.reduce((acc, v) => acc + v, 0);
  const sumB = arr2.reduce((acc, v) => acc + v, 0);
  const difference = (sumA + sumB) / 2 - sumA;
  const map = arr2.reduce((acc, v) => {
    acc[v] = true;
    return acc;
  }, {});
  for (let i = 0; i < arr1.length; i++) {
    if (map[arr1[i] + difference] === true) {
      return [arr1[i], arr1[i] + difference];
    }
  }
  return [];
};
console.log(balanceArrays(arr1, arr2));

आउटपुट

[5, 4]
  1. जावास्क्रिप्ट में एरे बनाम सेट जावास्क्रिप्ट में एरे बनाम सेट

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

  1. जावास्क्रिप्ट में दो ऐरे कैसे जोड़ें? जावास्क्रिप्ट में दो ऐरे कैसे जोड़ें?

    जावास्क्रिप्ट में दो ऐरे को एक साथ जोड़ने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>    bod

  1. जावास्क्रिप्ट में दो ऐरे को कैसे गुणा करें? जावास्क्रिप्ट में दो ऐरे को कैसे गुणा करें?

    जावास्क्रिप्ट में दो ऐरे को गुणा करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Documen