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

जावास्क्रिप्ट में वस्तुओं के बीच सबसे छोटी दूरी


मान लीजिए, हमारे पास इस तरह की सरणियों का एक ऑब्जेक्ट है -

const obj = {
   obj1: [ 0, 10 ],
   obj2: [ 3, 9 ],
   obj3: [ 5, 12, 14 ]
};

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो सरणी के ऐसे एक ऑब्जेक्ट को लेता है। ध्यान दें कि प्रत्येक वस्तु में एक से अधिक दूरी बिंदु होते हैं, लेकिन अन्य ऑब्जेक्ट के दूरी बिंदु के साथ संयोजन के लिए केवल एक को चुना जाना चाहिए।

हम ऊपर दिए गए दूरी बिंदुओं के आधार पर तीन वस्तुओं को 12 तरीकों से जोड़ सकते हैं।

उदाहरण के लिए, यह बन सकता है -

[0,3,5];

इस मामले में, तीन वस्तुओं के बीच की कुल दूरी 5 - 0 होगी जो कि 5 है;

या यह [10, 9, 5] बन सकता है, और दूरी है -

10 − 5 = 5;

संयोजन [0, 3, 12] भी हो सकता है और दूरी है -

12 − 0 = 12;

हम जो हासिल करने का इरादा रखते हैं, वह सबसे छोटा संयोजन खोजना है, जो इस मामले में होना चाहिए [10,9, 12]; और दूरी 12−9 =3 है;

ध्यान दें कि सबसे छोटी दूरी से हमारा तात्पर्य समूह के सबसे बड़े और सबसे छोटे तत्व के बीच के अंतर से है।

उदाहरण

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

const obj = {
   obj1: [ 0, 10 ],
   obj2: [ 3, 9 ],
   obj3: [ 5, 12, 14 ]
};
const findNearest = (obj = {}) => {
   let parts = [undefined, undefined, undefined];
   let i;
   let res;
   const data = Object
   .values(obj)
   .map((a, i) => a.map(v => [v, i]))
   .reduce((a, b) => a.concat(b))
   .sort((a, b) => a[0] − b[0] || a[1] − b[1]);
   for (i = 0; i < data.length; i++) {
      parts[data[i][1]] = data[i][0];
      if (parts.some(v => v === undefined)) continue;
      if (!res || Math.max(...parts) − Math.min(...parts) <
      Math.max(...res) − Math.min(...res)) {
         res = parts.slice();
      };
   };
   return res;
};
console.log(findNearest(obj));

आउटपुट

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

[ 10, 9, 12 ]

  1. जावास्क्रिप्ट - सरणी वस्तुओं की लंबाई

    जावास्क्रिप्ट में लंबाई संपत्ति वस्तु का आकार लौटाती है। स्ट्रिंग और सरणी ऑब्जेक्ट की लंबाई के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना, .परिणाम {फ़ॉन्ट-आकार:18पीएक्स; फ़ॉन्ट-वजन:500; लाल रंग; }जावास्क्रिप्ट लंबाई गुणयहा

  1. क्या हम एक सरणी में जावास्क्रिप्ट ऑब्जेक्ट्स के बीच एक विधि साझा कर सकते हैं?

    निम्नलिखित एक सरणी में वस्तुओं के बीच एक विधि साझा करने के लिए कोड है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>

  1. जावास्क्रिप्ट में वस्तुओं की समानता की व्याख्या करें।

    जावास्क्रिप्ट में आदिम जैसे स्ट्रिंग, संख्या, बूलियन आदि की तुलना उनके मूल्यों से की जाती है जबकि वस्तुओं (मूल या कस्टम) की तुलना उनके संदर्भ से की जाती है। संदर्भ द्वारा तुलना करने का अर्थ है कि दो या दो से अधिक वस्तु स्मृति में एक ही स्थान की ओर इशारा करती है या नहीं। जावास्क्रिप्ट में वस्तुओं की