407 Stimmen

Wie kann ich ein Element aus einem Array nach Wert löschen?

Ich habe ein Array von Elementen in Ruby

[2,4,6,3,8]

Ich muss Elemente mit Wert entfernen 3 zum Beispiel

Wie kann ich das tun?

579voto

Tamik Soziev Punkte 13558

Ich glaube, ich habe es herausgefunden:

a = [3, 2, 4, 6, 3, 8]
a.delete(3)
#=> 3
a
#=> [2, 4, 6, 8]

258voto

Abram Punkte 36743

Ausleihen von Travis in den Kommentaren, ist dies eine bessere Antwort:

Ich persönlich mag [1, 2, 7, 4, 5] - [7] was dazu führt, dass => [1, 2, 4, 5] de irb

Ich habe seine Antwort geändert, da 3 das dritte Element in seinem Beispielarray war. Dies könnte zu einer gewissen Verwirrung bei denjenigen führen, die nicht wissen, dass 3 an Position 2 in der Matrix steht.

75voto

Steve Punkte 2538

Eine andere Möglichkeit:

a = [2,4,6,3,8]

a -= [3]

was dazu führt, dass

=> [2, 4, 6, 8]

68voto

Scott Punkte 681

Ich bin mir nicht sicher, ob das schon jemand gesagt hat, aber Array.delete() und -= Wert wird jede Instanz des übergebenen Wertes innerhalb des Arrays löschen. Um die erste Instanz eines bestimmten Elements zu löschen, könnten Sie etwas tun wie

arr = [1,3,2,44,5]
arr.delete_at(arr.index(44))

#=> [1,3,2,5]

Es könnte einen einfacheren Weg geben. Ich sage nicht, dass dies die beste Praxis ist, aber es ist etwas, das anerkannt werden sollte.

40voto

Sayan Punkte 523

Angenommen, Sie wollen 3 nach Wert an mehreren Stellen in einem Array löschen, Ich denke, dass die Ruby-Methode für diese Aufgabe die delete_if-Methode verwenden sollte:

[2,4,6,3,8,3].delete_if {|x| x == 3 } 

Sie können auch delete_if beim Entfernen von Elementen im Szenario "Array von Arrays" verwenden.

Ich hoffe, damit ist Ihre Frage geklärt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X