मान लीजिए, हमारे पास स्ट्रिंग्स से नंबर्स मैप्ड एक ऑब्जेक्ट है जैसे:
const obj = {
num1: 45,
num2: 78,
num3: 234,
num4: 3,
num5: 79,
num6: 23
};
हमें एक JavaScript फंक्शन लिखना है जो ऐसा एक ऑब्जेक्ट पहले आर्गुमेंट के रूप में और सख्ती से दो नंबर्स का एक ऐरे दूसरे आर्गुमेंट के रूप में लेता है।
दूसरा आर्गुमेंट मूल रूप से एक रेंज दर्शाता है:
[a, b] (b >= a)
हमारा काम ऑब्जेक्ट के मानों को रेंज के अनुसार नॉर्मलाइज़ करना है।
इसलिए, ऑब्जेक्ट का सबसे बड़ा मान 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
}