1179 Stimmen

Finden Sie das Min/Max-Element eines Arrays in JavaScript

Wie kann ich leicht erhalten die minimale oder maximale Element eines JavaScript-Array?

Beispiel Pseudocode:

let array = [100, 0, 50]

array.min() //=> 0
array.max() //=> 100

178 Stimmen

Anmerkung: Mit ECMAScript 6 können Sie die neue Spread-Operator (drei Punkte: ... ) mit Math.max() wie diese: Math.max(...[2, 5, 16, 1]) . Siehe meine Antwort aus dem MDN-Dokumentation .

0 Stimmen

Hier ein Benchmark für einen Geschwindigkeitsvergleich der gebräuchlichsten Vorgehensweisen: jsben.ch/#/1QuTg

0 Stimmen

Ohne ES6 Math.max.apply(null, [2,5,16,1])

10voto

Peter Punkte 5010

Für große Arrays (~10 Elemente), Math.min y Math.max löst einen RangeError (Maximale Aufrufstapelgröße überschritten) in node.js aus.

Für große Arrays gibt es eine schnelle und schmutzige Lösung:

Array.prototype.min = function() {
    var r = this[0];
    this.forEach(function(v,i,a){if (v<r) r=v;});
    return r;
};

10voto

Adam Beleko Punkte 353
array.sort((a, b) => b - a)[0];

Liefert den Maximalwert in einem Zahlenfeld.

array.sort((a, b) => a - b)[0];

Gibt Ihnen den Mindestwert in einer Zahlenreihe.

let array = [0,20,45,85,41,5,7,85,90,111];

let maximum = array.sort((a, b) => b - a)[0];
let minimum = array.sort((a, b) => a - b)[0];

console.log(minimum, maximum)

10voto

ChukwuEmeka Punkte 3281

Neben der Verwendung der mathematischen Funktionen max und min kann auch die eingebaute Funktion von sort() verwendet werden: So geht's

const nums = [12, 67, 58, 30].sort((x, y) => 
x -  y)
let min_val = nums[0]
let max_val = nums[nums.length -1]

2 Stimmen

Hmm würde nicht sort() O(n*log(n)) Zeit benötigen, während die bloße Iteration durch das Array lineare Zeit benötigen würde?

9voto

Max Cabrera Punkte 121

Sie können die folgende Funktion überall in Ihrem Projekt verwenden:

function getMin(array){
    return Math.min.apply(Math,array);
}

function getMax(array){
    return Math.max.apply(Math,array);
}

Und dann können Sie die Funktionen aufrufen, indem Sie das Array übergeben:

var myArray = [1,2,3,4,5,6,7];
var maximo = getMax(myArray); //return the highest number

9voto

jaydip jadhav Punkte 479

Der folgende Code funktioniert bei mir:

var valueList = [10,4,17,9,3];
var maxValue = valueList.reduce(function(a, b) { return Math.max(a, b); });
var minValue = valueList.reduce(function(a, b) { return Math.min(a, b); });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X