मान लीजिए हमारे पास पूर्णांकों की एक सरणी है, (सकारात्मक, नकारात्मक और शून्य) जैसे:
const arr = [23, -1, 0, 11, 18];
हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक सरणी को पहली और एकमात्र आर्गुमेंट के रूप में लेता है। फ़ंक्शन को तब तीन अलग-अलग समूहों के लिए भिन्नात्मक अनुपात ढूंढना चाहिए, अर्थात् सकारात्मक, नकारात्मक और शून्य।
उदाहरण
उपरोक्त सरणी के लिए, इसकी लंबाई 5 है, इस सरणी के लिए आउटपुट होना चाहिए:
const output = [.2, .2, .6];
आउटपुट सरणी में हमेशा 3 संख्याएं होंगी, जो क्रमशः नकारात्मक, शून्य और सकारात्मक पूर्णांकों के भिन्नात्मक अनुपात को दर्शाती हैं। हमारे उत्तर को सत्यापित करने का एक मोटा तरीका यह है कि इन तीन मानों को जोड़ें और जांचें कि क्या वे 1 के निकट हैं या नहीं, यदि वे हैं, तो हमने समस्या को सही ढंग से हल करने की बहुत संभावना है।
उदाहरण
const arr = [23, -1, 0, 11, 18];
const findRatio = (arr = []) => {
const { length } = arr;
const res = [0, 0, 0];
for(let i = 0; i < arr.length; i++){
const el = arr[i];
const key = el / Math.abs(el || 1);
res[key + 1]++;
};
return res.map(el => el / length);
};
console.log(findRatio(arr));
आउटपुट
[0.2, 0.2, 0.6]