Ruby Verbindet mehrere Arrays

Einführung

Da ein Array ein anderes Array auf seinem Element haben kann

[1,2,3,[4,5,6],7,8,9]
Und
[[1,2,3],[4,5,6],[7,8,9]]

Sie können ein Array erstellen, das so aussieht. Es gibt viele Methoden und Operatoren, die Arrays kombinieren und hinzufügen, wenn ursprünglich separate Arrays wie oben beschrieben zu einem einzigen Array kombiniert werden.

Ich war jedoch verwirrt, als ich es auf verschiedene Arten benutzte. Darüber hinaus scheint die Verwendung etwas anders zu sein, deshalb habe ich einige ausprobiert, daher werde ich sie hier zusammenfassen.

1. Push-Methode

Die Push-Methode fügt den als eines der Elemente angegebenen Wert am Ende des Arrays hinzu.

a = [1,2,3]
b = [4,5,6],[7,8,9]
c = [10,11,12],[13,14,15]

a.push(b)
=> [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]
b.push(a)
=> [[4, 5, 6], [7, 8, 9], [1, 2, 3]]
b.push(c)
=> [[4, 5, 6], [7, 8, 9], [[10, 11, 12], [13, 14, 15]]]

Selbst wenn mehrere Arrays hinzugefügt werden müssen, scheint es ein ** Element ** des Empfänger-Arrays zu sein. Also wird "b = [4,5,6], [7,8,9]" am Ende als "[[4,5,6], [7,8,9]]" hinzugefügt.

Auch die Push-Methode ist eine destruktive Methode. Der Wert des Empfängers ändert sich.

a.push(b)
=> [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]

a
=> [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]

2. << Operator

Der Operator "<<" scheint sich genauso zu verhalten wie die Push-Methode.

a = [1,2,3]
b = [4,5,6],[7,8,9]
c = [10,11,12],[13,14,15]

a << b
=> [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]
b << a
=> [[4, 5, 6], [7, 8, 9], [1, 2, 3]]
b << c
=> [[4, 5, 6], [7, 8, 9], [[10, 11, 12], [13, 14, 15]]]

es ist das gleiche! Das gleiche gilt insofern, als es sich um eine destruktive Methode handelt.

a << b
=> [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]

a
=> [1, 2, 3, [[4, 5, 6], [7, 8, 9]]]

3. + Operator

Der Operator + fügt die Elemente des Arrays nacheinander hinzu.

a = [1,2,3]
b = [4,5,6],[7,8,9]
c = [10,11,12],[13,14,15]
d = [-1,-2,-3]

a + b
=> [1, 2, 3, [4, 5, 6], [7, 8, 9]]
b + a
=> [[4, 5, 6], [7, 8, 9], 1, 2, 3]
b + c
=> [[4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]
a + d
=> [1, 2, 3, -1, -2, -3]

Im Array "a" ist jedes Element ein numerischer Wert, daher wird der Wert am Ende hinzugefügt. Im b -Array ist jedes Element ein Array, daher wird es so wie es ist am Ende hinzugefügt.

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Wenn du möchtest

[a] + b
=> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Es scheint gut, sich selbst als Element des Arrays anzugeben.

Der Operator + nimmt keine Änderungen am Wert vor.

a + b
=> [1, 2, 3, [4, 5, 6], [7, 8, 9]]

a
=> [1, 2, 3]

4. "concat" -Methode

Die Methode "concat" verhält sich ähnlich wie der Operator "+".

a = [1,2,3]
b = [4,5,6],[7,8,9]
c = [10,11,12],[13,14,15]
d = [-1,-2,-3]

a.concat(b)
=> [1, 2, 3, [4, 5, 6], [7, 8, 9]]
b.concat(a)
=> [[4, 5, 6], [7, 8, 9], 1, 2, 3]
b.concat(c)
=> [[4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]
a.concat(d)
=> [1, 2, 3, -1, -2, -3]

Ist dasselbe.

[a].concat(b)
=> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Auch hier ist die Methode wirksam, es als Element eines Arrays zu behandeln.

Die "concat" -Methode ist jedoch destruktiv.

a.concat(b)
=> [1, 2, 3, [4, 5, 6], [7, 8, 9]]

a
=> [1, 2, 3, [4, 5, 6], [7, 8, 9]]

Dies ist der Unterschied zum Operator "+".

Bonus. "Verschieben" -Methode

Die "Unshift" -Methode ist der "Push" -Methode sehr ähnlich.

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Wenn Sie diese Form erstellen möchten, habe ich die Methode mit dem Operator "+" usw. veröffentlicht. Sie können sie jedoch auch mithilfe der Methode "Verschieben" realisieren.

a = [1,2,3]
b = [4,5,6],[7,8,9]

b.unshift(a)
=> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

schließlich

Ich konnte keinen Artikel finden, der zusammenfasst, wie Arrays so kombiniert werden, wie sie sind, und habe daher versucht, sie selbst zusammenzufassen. Bitte lassen Sie mich wissen, wenn Sie Fehler haben.

Recommended Posts

Ruby Verbindet mehrere Arrays
Über Ruby-Arrays
[Ruby] Entkomme aus mehreren Schleifen [Nest]
[Anfänger] Verschiedene iterative Verarbeitung für Ruby-Arrays