मान लीजिए, हमारे पास इस तरह की संख्याओं के लिए मैप किए गए स्ट्रिंग्स वाला ऑब्जेक्ट है -
const obj = { num1: 45, num2: 78, num3: 234, num4: 3, num5: 79, num6: 23 };
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक ऐसी वस्तु को पहले तर्क के रूप में लेता है और दूसरे तर्क के रूप में सख्ती से दो संख्याओं की एक सरणी लेता है।
दूसरा तर्क मूल रूप से एक श्रेणी का प्रतिनिधित्व करता है -
[a, b] (b >= a)
हमारा काम वस्तु मूल्यों को सीमा के अनुसार सामान्य करना है।
इसलिए, वस्तु का सबसे बड़ा मान बी होना चाहिए और सबसे छोटा होना चाहिए। और बीच में स्थित अन्य को तदनुसार समायोजित किया जाना चाहिए।
उदाहरण
निम्नलिखित कोड है -
const obj = { num1: 45, num2: 78, num3: 234, num4: 3, num5: 79, num6: 23 }; const range = [10, 15]; const normaliseObject = (obj, range) => { const values = Object.values(obj); const min = Math.min.apply(Math, values); const max = Math.max.apply(Math, values); const variation = (range[1] - range[0]) / (max - min); Object.keys(obj).forEach(el => { const val = (range[0] + ((obj[el] - min) * variation)).toFixed(2); obj[el] = +val; }); }; normaliseObject(obj, range); console.log(obj);
आउटपुट
यह कंसोल में निम्न आउटपुट उत्पन्न करेगा -
{ num1: 10.91, num2: 11.62, num3: 15, num4: 10, num5: 11.65, num6: 10.43 }