Nehmen wir an, ich habe ein Array
[0, 132, 432, 342, 234]
Was ist der einfachste Weg, um das erste Element loszuwerden? (0)
ruby-on-rails
ruby
NullVoxPopuli
quelle
quelle
Antworten:
Das "Pop" des ersten Elements eines Arrays wird als " Shift " bezeichnet ("Unshift" ist die Operation zum Hinzufügen eines Elements vor dem Array).
quelle
nil
zu einem leeren Array zurückkehrt. Suchen Siedrop
nach einer Alternative, wie in der anderen Antwort erwähnt.und zusätzlich:
quelle
[].drop(1) => []
shift
das Array an Ort und Stelle mutiert und das verschobene Element (odernil
wenn das Array leer war) zurückgegeben wirdVerwenden Sie die
shift
Methode für das ArrayWenn Sie n Startelemente entfernen möchten, können Sie verwenden
x.shift(n)
quelle
Anders als
shift
oderslice
dies gibt das modifizierte Array zurück (nützlich für einen Liner).quelle
[][1..-1] => nil
und nicht[]
.[1,2,3].shift
ein Einzeiler?arry[1..-1] || []
. Aber arry.drop (1) ist noch besser.Das ist ziemlich ordentlich:
Wie in den Kommentaren geschrieben, besteht der Vorteil darin, die ursprüngliche Liste nicht zu mutieren.
quelle
(let ((head (car mylist)) (tail (cdr mylist)) ...)
header, *properties = CSV.read(file_path,encoding: 'ISO-8859-1')
oder
a.delete_at 0
quelle
Verwenden Sie die Shift-Methode
https://ruby-doc.org/core-2.2.0/Array.html#method-i-shift
quelle
Sie können verwenden:
Scheibe! verallgemeinert auf jeden Index oder Bereich.
quelle
Sie können die Methode Array.delete_at (0) verwenden, mit der das erste Element gelöscht wird.
quelle
unless x.empty?
es notwendig ist. Es wird einfach zurückgegeben,nil
wenn der Index außerhalb des Bereichs liegt.Sie können verwenden:
Beides kann funktionieren
quelle
Sie können verwenden:
arr - [arr[0]]
oder sonstarr - [arr.shift()]
oder einfacharr.shift(1)
quelle