[ruby-de] array - delete

Die Optimisten inform at die-optimisten.net
Mi Mai 31 07:11:14 JST 2017


On 2017-05-30 21:30, sto.mar at web.de wrote:
> Am 30.05.2017 um 20:00 schrieb Die Optimisten:
>>>> => Es ist egal (meine Ansicht, bitte gerne widerlegen), wie keys oder
>>>> erg
>>>> definiert sind, oder wieviele Elemente sie enthalten.
>>> Die Anzahl vielleicht, welche Typen im Spiel sind nicht.
>> Ich dachte, es wäre egal, was die Objekte sind, wenn ich in einem Array
>> (oder Hash) darüber iteriere, und nach bestimmten Kriterien lösche (oder
>> die bestimmten Indices/values[keys] auf nil setze) - hat doch nichts mit
>> den im Array/Hash enthaltenen Objekt(Typen) zu tun?
> Mein letzter Kommentar dazu (denn das Trollometer schlägt inzwischen
> wirklich bedenklich weit aus):
>
> Es ging um Folgendes...
>
> Damit dein Code überhaupt funktioniert setzt du stillschweigend voraus,
> dass `keys` ein Array mit Schlüsseln aus dem Hash `erg` ist, wobei die
> Hashwerte wiederum irgendwelche Arrays sind. Und wir als potenzielle
> Beantworter deiner Frage müssen uns das erst mal überlegen, bevor wir
> sinnvoll auf dein Beispiel eingehen können.
>
> Was zum Beispiel nicht funktionieren würde ist:
>
> keys = "foo"
> erg  = "bar"
> # hier deine Code-Zeile
>
> Was für Objekte die Elemente in den Arrays sind, die im Hash enthalten
> sind, ist natürlich völlig wurscht.
>
Hallo!

Warum so kompliziert?

keys.map{|key|erg[key].each {|l|if l[1] == l[2] and l[2]==nil then 
erg[key].delete l end }}


erg muß folglich ein Array oder Hash sein, keys die Schlüssel dazu, die 
Hashwerte(/Indices) in keys sind beliebig (zB Nummern -- warum sollen 
sie Arrays sein?)
( -- die values sind dann Arrays)

Ich finde obige Zeile beschreibt genau, was es soll, weitere Details 
machten es nur aufwendiger zu lesen.
keys=[1,2,...]; erg={1=>'a', 2=>'b',...} hätte Dir geholfen?

Und da das ganze (syntaktisch) doch "simpel" ist, frage ich mich, warum 
nicht alle [*, nil, nil] verschwunden sind...


Dein Trollometer gehört geeicht! - ok meines vielleicht auch ;)  -- Ohne 
Zahnweh ist es sicher beruhigter...


bye,

Andreas



Mehr Informationen über die Mailingliste ruby-de