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])

0voto

Mayur Narula Punkte 141

Fügen Sie die Zahlen durch ein Komma getrennt ein und klicken Sie auf das Ereignis, das Sie aufrufen möchten, d.h. holen Sie die Max- oder Min-Zahl.

        function maximumNumber() {

            var numberValue = document.myForm.number.value.split(",");
            var numberArray = [];

            for (var i = 0, len = numberValue.length; i < len; i += 1) {

                numberArray.push(+numberValue[i]);

                var largestNumber = numberArray.reduce(function (x, y) {
                    return (x > y) ? x : y;
                });
            }

            document.getElementById("numberOutput").value = largestNumber;

        }

        function minimumNumber() {

            var numberValue = document.myForm.number.value.split(",");
            var numberArray = [];

            for (var i = 0, len = numberValue.length; i < len; i += 1) {

                numberArray.push(+numberValue[i]);

                var smallestNumber = numberArray.reduce(function (x, y) {
                    return (x < y) ? x : y;
                });
            }

            document.getElementById("numberOutput").value = smallestNumber;

        }

            function restrictCharacters(evt) {

                evt = (evt) ? evt : window.event;
                var charCode = (evt.which) ? evt.which : evt.keyCode;
                if (((charCode >= '48') && (charCode <= '57')) || (charCode == '44')) {
                    return true;
                }
                else {
                    return false;
                }
            }

    <div>    
            <form name="myForm">
            <table>
            <tr>
                <td>Insert Number</td>

                <td><input type="text" name="number" id="number" onkeypress="return restrictCharacters(event);" /></td>

                <td><input type="button" value="Maximum" onclick="maximumNumber();" /></td>

                <td><input type="button" value="Minimum" onclick="minimumNumber();"/></td>

                <td><input type="text" id="numberOutput" name="numberOutput" /></td>

            </tr>
            </table>
            </form>
        </div>

0voto

Kamil Punkte 1605

Wenn Sie Leistung benötigen, ist dies der beste Weg für kleine Arrays:

var min = 99999;
var max = 0;
for(var i = 0; i < v.length; i++)
{
    if(v[i] < min)
    {
        min = v[i];
    }
    if(v[i] >= max)
    {
        max = v[i];
    }
}

-1voto

Penny Liu Punkte 11266

Hier ist ein weiteres Beispiel. Berechnen Sie den Max/Min-Wert aus einem Array mit lodash .

let array = [100, 0, 50];
var func = _.over(Math.max, Math.min);
var [max, min] = func(...array);
// => [100, 0]
console.log(max);
console.log(min);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>

-9voto

Freedy Carvalho Punkte 23

Ich konnte mein Problem auf diese Weise lösen:

    var strDiv  = "4,8,5,1"
var arrayDivs   = strDiv.split(",")
var str = "";

for (i=0;i<arrayDivs.length;i++)
{
    if (i<arrayDivs.length-1)
    {
      str = str + eval('arrayDivs['+i+']')+',';
    } 
    else if (i==arrayDivs.length-1)
    {
      str = str + eval('arrayDivs['+i+']');
    }
}

str = 'Math.max(' + str + ')';
    var numMax = eval(str);

Ich hoffe, ich habe Ihnen geholfen.

Mit freundlichen Grüßen.

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