Math.max()
الدالة Math.max()
تعيد أكبر قيمة من بين الوسائط المُمرَّرة إليها.
البنية العامة
Math.max([value1[, value2[, ...]]])
value1, value2, ...
الأعداد التي ستُجرى عليها العملية.
القيمة المعادة
أكبر قيمة من الأعداد المُمرَّرة إلى الدالة، وإذا لم يكن بالإمكان تحويل أحد الوسائط على الأقل إلى قيمةٍ رقمية، فستُعاد القيمة NaN
.
الوصف
لمّا كانت الدالة max
هي دالةٌ ساكنة (static method) تابعةٌ للكائن Math، فيجب عليك استخدامها دومًا بالشكل Math.max()
، إذ لا تستطيع استخدامها كجزء من كائن Math
خاص بك (تذكر أنَّ الكائن Math
ليس له دالةٌ بانية).
إذا لم يكن بالإمكان تحويل أحد الوسائط على الأقل إلى قيمةٍ رقمية، فستُعاد القيمة NaN
.
إذا لم تُمرَّر أيّة وسائط إلى الدالة، فالنتيجة هي -Infinity
.
أمثلة
أمثلة عن استخدام الدالة Math.max()
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
الحصول على أكبر قيمة من مصفوفة
يمكن استخدام الدالة Array.reduce()
للحصول على أكبر عنصر في مصفوفة عددية بمقارنة القيم التي فيها:
var arr = [1, 2, 3];
var max = arr.reduce(function(a, b) {
return Math.max(a, b);
});
الدالة الآتية تستخدم الدالة Function.prototype.apply()
للحصول على أكبر قيمة في المصفوفة، لاحظ أنَّ استخدام الدالة getMaxOfArray([1, 2, 3])
يكافئ استخدام Math.max(1, 2, 3)
، لكن يمكنك استخدام الدالة getMaxOfArray()
على المصفوفات المولّدة برمجيًا (أي التي لا تعرف ما هي عناصرها عند كتابة البرنامج)؛ ويجب استخدام هذه الطريقة للمصفوفات التي لها عناصر قليلة نسبيًا:
function getMaxOfArray(numArray) {
return Math.max.apply(null, numArray);
}
معامل النشر (spread operator) المُضاف حديثًا إلى اللغة هو طريقةٌ أقصر من استخدما الدالة apply
للحصول على أكبر قيمة في المصفوفة:
var arr = [1, 2, 3];
var max = Math.max(...arr);
لكن لن يستطيع معامل النشر (...
) والدالة apply
من إعادة القيمة الصحيحة إذا كانت تملك المصفوفة عناصر كثيرة، وذلك لأنها تُمرِّر عناصر المصفوفة كمعاملات إلى الدوال، راجع صفحة الدالة apply
لتفاصيل عن طريقة الالتفاف على هذه المحدودية؛ لاحظ أنَّ الدالة reduce
لا تعاني من هذه المشكلة.
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .