Få maksimale og minimumsverdier i en Ruby -matrise

Få maksimale og minimumsverdier i en Ruby -matrise

I denne opplæringen lærer vi hvordan du bruker de forskjellige metodene fra matriseklassen på Ruby -programmeringsspråket. Array -klassen har tilgang til den enumerbare modulen som gir et sett med metoder for å samhandle med matriseelementene.

Få maksimal verdi i en matrise i Ruby

Vi kan bruke matrisen#Max -metoden for å finne den maksimale verdien fra et gitt sett med elementer. Metoden returnerer elementet og ikke plasseringen av det maksimale elementet i matrisen.

Metoden lar oss også returnere mer enn en verdi ved å spesifisere antall verdier som skal hentes som et argument.

Vi kan uttrykke funksjonssyntaks som følger:

Array.Max ()


For å returnere mer enn en verdi, kan vi bruke syntaksen som følger:

Array.Max ([N])


Der n er en valgfri parameter som bestemmer antall elementer som blir returnert av funksjonen. Dette returnerer verdiene i synkende rekkefølge.

Funksjonsretur

Funksjonen returnerer en matrise som inneholder maksimale verdier som er spesifisert i n -parameteren. Hvis n ikke er gitt, returnerer funksjonen en enkelt verdi.

Eksempelfunksjonsbruk

Følgende eksempel viser funksjonsbruken med en rekke heltallverdier:

IRB (hoved): 001: 0> arr = [10,22,12,100,121,239]
=> [10, 22, 12, 100, 121, 239]
IRB (hoved): 002: 0> arr.Maks
=> 239


Funksjonen returnerer den høyeste verdien fra inngangsarrayen i dette tilfellet. For å få de tre høyeste verdiene, kan vi passere verdien av n som vist:

IRB (hoved): 003: 0> arr.Maks (3)
=> [239, 121, 100]


I dette tilfellet returnerer funksjonen en matrise med de tre høyeste verdiene i synkende rekkefølge.

Vi kan også bruke funksjonen til å hente maksimal verdi fra en rekke strenger. Et eksempel på demonstrasjon er som følger:

IRB (hoved): 004: 0> arr = ['mysql', 'PostgreSql', 'Redis', 'SQL Server']
=> ["MySQL", "PostgreSql", "Redis", "SQL Server"]
IRB (hoved): 005: 0> arr.Maks
=> "SQL Server"


I dette tilfellet sorterer funksjonen strengen basert på tegnene på inngangsstrengen. Jo høyere karakterene er i alfabetisk indeks, jo høyere er verdien.

Dette er en lignende sak for en rekke tegn, som demonstrert i følgende:

IRB (Main): 008: 0> arr = ['A', 'B', 'C', 'Z', 'Q']
=> ["a", "b", "c", "z", "q"]
IRB (hoved): 009: 0> arr.Maks
=> "Z"


I dette tilfellet returnerer funksjonen tegnet med den høyeste alfabetiske indeksen.

IRB (hoved): 010: 0> arr.Maks (3)
=> ["z", "q", "c"]

Få minimumsverdien i en matrise i Ruby

Vi kan hente minimumsverdien fra en matrise ved hjelp av matrisen#min () -funksjonen. Funksjonen følger en lignende syntaks som MAX -funksjonen som vist i følgende:

Array.min ()


For å få mer enn ett element fra matrisen, bruk følgende kommando:

Array.min (n)


Der n refererer til antall elementer med de høyeste eller minimumsverdiene.

Et eksempel på demonstrasjon er som følger:

Strings = ['Hallo', 'World']
intS = [1,2,3,4,5]
chars = ['a', 'b', 'x', 'c']
IRB (hoved): 018: 0> strenger.min
=> "Hei"
IRB (Main): 019: 0> INTS.min
=> 1
IRB (Main): 020: 0> Chars.min
=> "A"


Som vi kan se, returnerer funksjonen den minste verdien i en gitt matrise. Når det gjelder tegn og strenger, sorterer funksjonen verdiene basert på deres posisjoner i alfabetisk rekkefølge.

Konklusjon

Vi utforsket hvordan vi kan bruke matrisen#Max og Array#min -funksjoner for å hente maksimums- og minimumsverdiene fra en matrise i Ruby.