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

JavaScript में दो ऑब्जेक्ट की तुलना करके 0 से 100 के बीच समानता प्रतिशत लौटाना


मान लीजिए हमारे पास दो ऑब्जेक्ट हैं:

const a = {
  Make: "Apple",
  Model: "iPad",
  hasScreen: "yes",
  Review: "Great product!",
};

const b = {
  Make: "Apple",
  Model: "iPad",
  waterResistant: false
};

हमें एक फ़ंक्शन लिखना है जो ऑब्जेक्ट में सामान्य गुणों की संख्या गिनता है (सामान्य गुण से हमारा मतलब है कुंजी और मान दोनों समान होना) और 0 और 100 (दोनों समावेशी) के बीच एक संख्या लौटाता है जो ऑब्जेक्ट के बीच समानता का प्रतिशत दर्शाता है। जैसे यदि कोई कुंजी/मान जोड़ी मेल नहीं खाती तो यह 0 होगा, यदि सभी मेल खाते हैं तो 100 होगा।

समानता का प्रतिशत गिनने के लिए हम बस समान गुण की गिनती को छोटे ऑब्जेक्ट (जिसमें कम कुंजी/मान जोड़े हैं) में गुणों की संख्या से विभाजित कर सकते हैं और इस परिणाम को 100 से गुणा कर सकते हैं।

इसे समझने के बाद, अब आइए इस फ़ंक्शन के लिए कोड लिखते हैं:

उदाहरण

const a = {
  Make: "Apple",
  Model: "iPad",
  hasScreen: "yes",
  Review: "Great product!",
};

const b = {
  Make: "Apple",
  Model: "iPad",
  waterResistant: false
};

const findSimilarity = (first, second) => {
  const firstLength = Object.keys(first).length;
  const secondLength = Object.keys(second).length;
  const smaller = firstLength < secondLength ? first : second;
  const greater = smaller === first ? second : first;
  const count = Object.keys(smaller).reduce((acc, val) => {
    if (Object.keys(greater).includes(val)) {
      if (greater[val] === smaller[val]) {
        return ++acc;
      }
    }
    return acc;
  }, 0);
  return (count / Math.min(firstLength, secondLength)) * 100;
};

console.log(findSimilarity(a, b));

आउटपुट

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

66.66666666666666

क्योंकि छोटे ऑब्जेक्ट में 3 गुण हैं जिनमें से 2 सामान्य हैं जो लगभग 66% होता है।


  1. - जावास्क्रिप्ट में दशमलव संख्या के बिट्स को उलटकर नई दशमलव संख्या प्राप्त करना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक दशमलव संख्या लेता है, इसे बाइनरी में बदलता है, इसके बिट्स को उलटता है (1 को 0 और 0 को 1 में), और नए बाइनरी की दशमलव समतुल्य संख्या लौटाता है।उदाहरणनिम्न कोड देखें:const num = 45657; const reverseBitsAndConvert = (num = 1) => {    const

  1. - जावास्क्रिप्ट में दो IP पतों के बीच मौजूद IP पतों की संख्या गिनना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो दो IPv4 पते लेता है, और उनके बीच के पतों की संख्या लौटाता है (पहले को शामिल करके, अंतिम को छोड़कर)। यह उन्हें दशमलव में बदलकर और उनका निरपेक्ष अंतर निकालकर किया जा सकता है।उदाहरणनिम्न कोड देखें:const ip1 = 20.0.0.10; const ip2 = 20.0.1.0; const countIp

  1. - जावास्क्रिप्ट में संख्या को अभाज्य संख्याओं की घात और गुणनफल के रूप में दर्शाना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक धनात्मक पूर्णांक लेता है। हमारा फ़ंक्शन इस संख्या को कुछ अभाज्य संख्याओं की घातों के योग के रूप में दर्शाएगा।इसलिए, संख्या n के लिए, हमारा फ़ंक्शन निम्न जैसी स्ट्रिंग लौटाएगा:n = (p1**n1)(p2**n2)...(pk**nk)जहां p1, p2, p3..pk अभाज्य संख्याएं हैं और