मान लीजिए, हमारे पास इस तरह की दो वस्तुएं हैं -
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% होते हैं।