Nehmen wir an, ich habe ein Array
[0, 132, 432, 342, 234]
Was ist der einfachste Weg, um das erste Element loszuwerden? (0)
Nehmen wir an, ich habe ein Array
[0, 132, 432, 342, 234]
Was ist der einfachste Weg, um das erste Element loszuwerden? (0)
Antworten:
Das "Pop" des ersten Elements eines Arrays wird als " Shift " bezeichnet ("Unshift" ist die Operation zum Hinzufügen eines Elements vor dem Array).
nil
zu einem leeren Array zurückkehrt. Suchen Sie drop
nach einer Alternative, wie in der anderen Antwort erwähnt.
a = [0,1,2,3]
a.drop(1)
# => [1, 2, 3]
a
# => [0,1,2,3]
und zusätzlich:
[0,1,2,3].drop(2)
=> [2, 3]
[0,1,2,3].drop(3)
=> [3]
[].drop(1) => []
shift
das Array an Ort und Stelle mutiert und das verschobene Element (oder nil
wenn das Array leer war) zurückgegeben wird
Verwenden Sie die shift
Methode für das Array
>> x = [4,5,6]
=> [4, 5, 6]
>> x.shift
=> 4
>> x
=> [5, 6]
Wenn Sie n Startelemente entfernen möchten, können Sie verwenden x.shift(n)
[0, 132, 432, 342, 234][1..-1]
=> [132, 432, 342, 234]
Anders als shift
oder slice
dies gibt das modifizierte Array zurück (nützlich für einen Liner).
[][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:
head, *tail = [1, 2, 3, 4, 5]
#==> head = 1, tail = [2, 3, 4, 5]
Wie in den Kommentaren geschrieben, besteht der Vorteil darin, die ursprüngliche Liste nicht zu mutieren.
(let ((head (car mylist)) (tail (cdr mylist)) ...)
header, *properties = CSV.read(file_path,encoding: 'ISO-8859-1')
Verwenden Sie die Shift-Methode
array.shift(n) => Remove first n elements from array
array.shift(1) => Remove first element
Sie können die Methode Array.delete_at (0) verwenden, mit der das erste Element gelöscht wird.
x = [2,3,4,11,0]
x.delete_at(0) unless x.empty? # [3,4,11,0]
unless x.empty?
es notwendig ist. Es wird einfach zurückgegeben, nil
wenn der Index außerhalb des Bereichs liegt.
Sie können verwenden:
arr - [arr[0]]
oder sonst
arr - [arr.shift()]
oder einfach
arr.shift(1)