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
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات