Wie bekomme ich die höchste Ganzzahl in eine Tabelle in Lua?
Wie bekomme ich die höchste Ganzzahl in eine Tabelle in Lua?
InformationsquelleAutor Jeremy | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bekomme ich die höchste Ganzzahl in eine Tabelle in Lua?
InformationsquelleAutor Jeremy | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
du hast Recht! Schöne Beobachtung!
Gibt es eine bestimmte Anzahl Argumente erlaubt in der Mathematik.max()? Es scheint, wie die meisten "offiziellen" Weg, Dinge zu tun.
InformationsquelleAutor milanogc
InformationsquelleAutor Hiu Ok
Eine generische Funktion für die Erreichung dieser:
Denen wird wie folgt verwendet:
Die Funktion gibt den größten Wert in dem array (und Ihren Schlüssel), so dass es mehr Sinn macht, nennen es "max" als "vergleichen".
InformationsquelleAutor ponzao
Die andere Antwort von ponzao ist gut, aber um Ihre Frage zu beantworten, mehr spezifisch, wenn Sie nur wollen, zu bekommen, die höchste Anzahl (und nicht der index als gut), ich in der Regel tun Sie dies:
Einen Schritt weiter und beinhalten nur den array-Teil der Tabelle und filtern Sie nur die Anzahl Werte (um Fehler zu vermeiden), Sie können einige Typ-Prüfungen:
Die Logik ist wie folgt:
Ich weiß, das ist eine alte Frage, so dass die OP wahrscheinlich braucht nicht mehr, aber diese Seite derzeit einen hohen Rang in Google so, hoffentlich kann jemand anderes helfen, der stolpert auf dieser Seite.
InformationsquelleAutor Jonathan Beebe
Wenn Ihre Tabelle ist ein array (nur numerische Indizes >0) dann benutzen Sie die Tabelle.Sortieren und nehmen
t[#t]
(dies ändert sich jedoch die Tabelle).Andere Ansatz wäre, wie dies
Das ist wahr und falsch zur gleichen Zeit. Wenn Sie
t={"a"}
, dann t[1] wird in der Tat "ein". Aber Sie können starten Sie die Indizierung, wo immer Sie wollen, wenn Sie einfach nur im Hinterkopf behalten, dass die anderen Indizes, die am Ende in der hash in der Tabelle. Sot={[0]=0,1,2,3}
oder auch t `={[-123]="a",[-122]="b",'c'} sind gleich gültig. Aber auf diese Tabellen die Tabelle.Sortierfunktion funktioniert nicht, das funktioniert nur bei arrays mit index - >0 und keine Löcher.sollte es nicht sein:
.." at index " ..m[1])
?Genau, Und das ist wahrscheinlich das, was Alexander wurde am Ziel zu... Feste!
der Einwand
m[0]
ist aufgrund der Initialisierungm={0,0}
die initialisiertm[1]
undm[2]
aber nichtm[0]
. Wird der Vergleich auf die Dritte Zeile beschweren sich über den Vergleich und integer mitnil
.InformationsquelleAutor jpjacobs
Lua kommt mit einer Funktion, um die höchste integer-Taste, wenn das ist, was Sie wollte...
table.maxn
ist veraltet von Lua 5.2.InformationsquelleAutor daurnimator