2016-11-03 5 views
-3

Я пользуюсь функцией Math.max, но не доступен на всех устройствах и в браузерах. Есть ли Polyfill или другой простой и быстрый способ решить эту проблему?Polyfill for Math.max, чтобы сделать его пригодным для использования в старых браузерах/системах

+4

Какое устройство не поддерживает это его была частью JavaScript с тех пор навсегда .. был бы удивлен, что есть браузер, который не делает.? поддерживайте его. – putvande

+1

[MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max) говорит, что это поддерживается всеми браузерами. – chazsolo

+1

Должен поддерживаться во всех браузер, 'Math.max' был частью javascript с первого выпуска? – adeneo

ответ

0

Проблема у вас есть не с Math.max, как это было поддержано с тех пор навсегда. Это с деструктурированием (... в Math.max(...array)). Чтобы обойти это, вы можете использовать старый JavaScript, который, скорее всего, поддерживается. Try:

Math.max.apply(null, array); (что в значительной степени так же, как Math.max(...array)

0

Смотрите следующий код:

if (!Math.max) 
{ 
    Math.max = function() 
    { 
    var max = Infinity * -1; 
    for (var index = 0; index < arguments.length; index++) 
    { 
     var val = arguments[index]; 
     if (val > max) 
     { 
     max = val; 
     } 
    } 
    return max; 
    }; 
} 

DEMO: https://jsfiddle.net/1x3d1btf/3/