2015-04-18 15 views
12

Ich habe ein Ruby-Array, und ich möchte alle Elemente beginnend mit Index i bis Index j, an Ort und Stelle. Der Rest des Arrays sollte nicht geändert werden. Wie kann ich das umsetzen?Sortierung Teil eines Arrays in Ruby

+0

Gut formulierte Frage. @CodeGnome, gib es zu: Du hast dich als falsch erwiesen. :-) –

Antwort

18

Sie können a[i, j] = a[i, j].sort! verwenden, um vom Index i zum Index j zu sortieren. Beispiel:

a = [8, 7, 5, 4, 3] 
a[2..4] = a[2..4].sort! 
a # => [8, 7, 3, 4, 5] 
+0

Ich wollte kommentieren es wird nicht tun, was OP will, aber die Änderung ist gut – texasbruce

+0

Sehr nett, es scheint, Sie sind heute auf einer Rolle. –

+3

'a [2..4] = a [2..4] .sort!' Wäre marginal effizienter, da nur ein temporäres Array erstellt wird. –

Verwandte Themen