Der Hash, mit dem ich arbeite, hat einen Hash für seine Werte, der immer eine ID, einen Namen und eine Beschreibung enthält. Ich bin nicht daran interessiert, die ID oder den Namen zu behalten und möchte nur jeden Hash-Wert durch seine entsprechende Beschreibung ersetzen.Ruby - Ersetze Hash-Werte elegant durch verschachtelten Wert (Beschreibung)
-Code
hsh['nested']['entries']['addr'] = hsh['nested']['entries']['addr']['description']
hsh['nested']['entries']['port'] = hsh['nested']['entries']['port']['description']
hsh['nested']['entries']['protocol'] = hsh['nested']['entries']['protocol']['description']
hsh['nested']['entries']['type'] = hsh['nested']['entries']['type']['description']
... (many more)
Dies funktioniert gut, aber es ist nicht sehr elegant - in Wirklichkeit, ich habe 20 Einträge/Codezeilen die Arbeit zu erledigen.
Struktur des Hashwertes (für hsh['nested']['entries']['addr']
)
{ "id" => "27", "name" => "Instance", "description" => "**This is what I need.**" }
die erste Zeile des angezeigten Code als eine Probe nehmen, würde das Ergebnis sein, der Wert von hsh['nested']['entries']['addr']
**This is what I need.**
wird, was ist Ein eleganter Weg dies zu erreichen?
Bitte passen Sie Ihre Beispielcode und Daten, so dass es runnable ist und es zeigt, das Problem Sie haben. "[mcve]" beschreibt, wie man fragt. Wir benötigen den minimalen Code, der das Problem demonstriert, zusammen mit den minimalen Eingabedaten und Ihrer erwarteten Ausgabe. Während wir Daten zusammenbasteln können, zwingt dies uns dazu, verschiedene Ausgangspunkte zu verwenden, was zu Ungenauigkeiten und dem Potenzial verwirrender Antworten führt. Denken Sie daran, dass Ihre Frage und unsere Antworten ein Artikel sind, der zukünftigen Nutzern helfen soll, eine ähnliche Lösung zu finden, und diese nicht nur für Sie zu beantworten. –
Entschuldigung, ich werde dies am Montag überprüfen und korrigieren, wenn möglich. Vielen Dank. –