ein ArrayConverting Array-Indizes auf Objekte in einer Hash in einer Zeile
Gegeben array = ['a','b','c','d','e','f']
und einen Hash
hash = {"a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5,"f"=>6}
Ich mag würde ein neues Array erzeugen, die die Objekte enthält, entspricht dem Wert jedes Index ab dem dritten. Ich tue es derzeit wie folgt aus:
newArray = []
array[2..-1].each do |item|
newArray << hash[item]
end
Ich fühle mich wie dies in einer Zeile durchgeführt werden konnte (möglicherweise ohne die newArray
Schaffung vorher, wie ich diese direkt Initialisierungscode des in ein anderes Objekt setzen möchten). Ist das möglich?
verwenden Wenn Sie es eine Zeile tun möchten, entfernen Sie einfach die Zeilenumbrüchen. In Ruby können Sie immer alle Zeilenumbrüche in allen Programmen entfernen, indem Sie sie durch Semikolons, Schlüsselwörter oder manchmal sogar durch nichts ersetzen. In deinem Fall: 'newArray = []; Array [2 ..- 1] .jede | item | newArray << hash [Element] Ende 'Voilà: eine Zeile. –