reduce() और Math.max() के साथ स्प्रेड ऑपरेटर से प्रत्येक सब-ऐरे का अधिकतम मान निकालें।
बुनियादी समाधान
const getMaxFromArrays = (arrays) =>
arrays.reduce((maxValues, currentArray) => {
maxValues.push(Math.max(...currentArray));
return maxValues;
}, []);
const arrays = [
[45, 78, 3, 1],
[50, 34, 90, 89],
[32, 10, 90, 99]
];
console.log(getMaxFromArrays(arrays)); // [ 78, 90, 99 ]
map() विकल्प (सरल, अनुशंसित)
const maxValues = arrays.map(arr => Math.max(...arr));
console.log(maxValues); // [ 78, 90, 99 ]
reduce के साथ वन-लाइनर
const maxValues = arrays.reduce((acc, arr) => [...acc, Math.max(...arr)], []);
// या
const maxValues = arrays.reduce((acc, arr) => acc.concat(Math.max(...arr)), []);
खाली ऐरे हैंडलिंग
function safeMax(arr) {
return arr.length > 0 ? Math.max(...arr) : null;
}
const withEmpty = [[1,2], [], [3,4]];
const maxes = withEmpty.map(safeMax);
console.log(maxes); // [ 2, null, 4 ]
ऑब्जेक्ट्स की ऐरे से मैक्स प्रॉपर्टी
const students = [
[{ name: 'A', score: 80 }, { name: 'B', score: 90 }],
[{ name: 'C', score: 85 }, { name: 'D', score: 95 }]
];
const maxScores = students.map(group =>
Math.max(...group.map(s => s.score))
);
console.log(maxScores); // [ 90, 95 ]
चलाने का तरीका
node max-from-arrays.js
आउटपुट
[ 78, 90, 99 ]
प्रदर्शन नोट
map()सबसे पठनीय और पर्याप्त तेज़ हैreduce()उपयोगी जब एक्यूमुलेटर में अतिरिक्त लॉजिक होMath.max(...arr)बड़े ऐरे (100K+) के लिए स्टैक ओवरफ्लो कर सकता है - तब लूप उपयोग करें
बड़े ऐरे के लिए सुरक्षित मैक्स
function safeMaxLarge(arr) {
if (arr.length === 0) return null;
let max = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) max = arr[i];
}
return max;
}