2016-07-08 5 views
0

ist das Array:Zugriff auf Wert in einem verschachtelten Array oder Subarray mit einer Ruby-Methode? Diese

array = [ 1, 2, 3, [4, 5, 6] ] 

Kann ich "delete_at" Methode, um die "5" zu löschen?

array.delete_at[x] method 

Was wäre die korrekte Syntax?

+0

'Array [3] .delete_at (1)'? – potashin

+2

Willst du das Element 'array [3] [1]' löschen (egal welchen Wert) oder willst du die '5' löschen, ohne zu wissen, wo es im Array ist (und angenommen, das Array hat eine bestimmte Struktur)? –

+0

Bitte zeigen Sie, was das Ergebnis sein soll. –

Antwort

3

Ihr 'Array' hat nur 4 Elemente. Wenn es Subarray Sie wahrscheinlich etwas wie das

array[3].delete_at(1) 

tun sollten, um das zweite Element des Sub-Array zu löschen, die ein viertes Element von ‚Array‘ Array ist.

+0

Das funktioniert - danke! –

-2

Willkommen bei Stack Overflow!

Dieser ist länger und weniger effizient, aber es ermöglicht Ihnen, das Element, das gelöscht werden soll, nach Wert anstatt nach Position (Array-Index) auszuwählen. Das ist nützlich, wenn Sie die Position nicht kennen.

array.map {|x| x.delete(5) if x.instance_of?(Array); x} 
+0

Das funktioniert - danke! –

+0

Gern geschehen. – BrunoFacca

-3

Bonus!

Hier ist das Array mit einer weiteren Ebene hinzugefügt:

testarray = [ 1, 2, [ 3, 4, 5, [ 6, 7, 8 ] ] ] 

Und Syntax wie die '7' löschen:

testarray[2][3].delete_at(1) 
+0

Schreiben Sie dies als Kommentar. – sawa

Verwandte Themen