1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
---
title: Math.max()
slug: Web/JavaScript/Reference/Global_Objects/Math/max
tags:
- JavaScript
- Math
- Method
- Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Math/max
---
<div>{{JSRef}}</div>
<p>Die Funktion <strong><code>Math.max()</code></strong> gibt die größte von 0 oder mehr Zahlen zurück.</p>
<div>{{EmbedInteractiveExample("pages/js/math-max.html")}}</div>
<h2 id="Syntax">Syntax</h2>
<pre class="syntaxbox"><code>Math.max([<var>wert1</var>[, <var>wert2</var>[, ...]]])</code></pre>
<h3 id="Parameter">Parameter</h3>
<dl>
<dt><code>wert1, wert2, ...</code></dt>
<dd>Zahlen.</dd>
</dl>
<h3 id="Rückgabewert">Rückgabewert</h3>
<p>Die größte der übergebenen Zahlen. Wenn mindestens ein Parameter nicht zu einer Zahl konvertiert werden kann, wird {{jsxref("NaN")}} zurückgegeben.</p>
<h2 id="Beschreibung">Beschreibung</h2>
<p>Weil <code>max()</code> eine statische Methode von <code>Math</code> ist, kann nur <code>Math.max()</code> verwendet werden. Eine Verwendung mit Math als instanziertem Objekt ist nicht möglich (<code>Math</code> ist kein constructor).</p>
<p>Wenn keine Argumente übergeben wurden ist der Rückgabewert -{{jsxref("Infinity")}}.</p>
<p>Wenn mindestens eines der Argumente nicht in eine Zahl umgewandelt werden kann, ist der Rückgabewert {{jsxref("NaN")}}.</p>
<h2 id="Beispiele">Beispiele</h2>
<h3 id="Einsatz_von_Math.max()">Einsatz von <code>Math.max()</code></h3>
<pre class="brush: js">Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
</pre>
<h4 id="Das_größte_Element_in_einem_Array_ermitteln">Das größte Element in einem Array ermitteln</h4>
<p>{{jsxref("Array.prototype.reduce", "Array.reduce()")}} kann ebenfalls benutzt werden, um das Maximum eines Arrays zu erhalten, indem jeder Wert verglichen wird.</p>
<pre class="brush: js">var arr = [1, 2, 3];
var max = arr.reduce(function(a, b) {
return Math.max(a, b);
});
</pre>
<p>Die folgende Funktion benutzt {{jsxref("Function.prototype.apply()")}}, um den maximalen Wert eines numerischen Arrays zu finden. <code>getMaxOfArray([1, 2, 3])</code> entspricht <code>Math.max(1, 2, 3)</code>, aber <code>getMaxOfArray()</code> kann programmatisch erstellte Arrays jeder Art annehmen.</p>
<pre class="brush: js">function getMaxOfArray(numArray) {
return Math.max.apply(null, numArray);
}
</pre>
<p>Alternativ ist es mit dem neuen {{jsxref("Operators/Spread_operator", "spread Operator")}} viel einfacher, den maximalen Wert eines Arrays herauszufinden.</p>
<pre class="brush: js">var arr = [1, 2, 3];
var max = Math.max(...arr);
</pre>
<p>Bei dem Einsatz des {{jsxref("Operators/Spread_operator", "spread Operator")}} oder <code>apply</code> kann der Aufruf fehlschlagen oder ein ungültiges Ergebnis herauskommen, wenn das Array zu viele Elemente hat. Das liegt daran, dass versucht wird die Elemente des Arrays als Parameter einer Funktion zu übergeben. Siehe für mehr Details im Abschnitt <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#Using_apply_and_built-in_functions">Einsatz von <code>apply</code> und standard Funktionen</a> nach. Die <code>reduce</code> Lösung hat dieses Problem nicht.</p>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Kommentar</th>
</tr>
<tr>
<td>{{SpecName('ES1')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Initiale Definition. In JavaScript 1.0 implementiert.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.8.2.11', 'Math.max')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-math.max', 'Math.max')}}</td>
<td>{{Spec2('ES6')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-math.max', 'Math.max')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
<p>{{Compat("javascript.builtins.Math.max")}}</p>
<h2 id="Siehe_auch">Siehe auch</h2>
<ul>
<li>{{jsxref("Math.min()")}}</li>
</ul>
|