Vamos dizer que eu tenho uma matriz
[0, 132, 432, 342, 234]
Qual é a maneira mais fácil de se livrar do primeiro elemento? (0)
ruby-on-rails
ruby
NullVoxPopuli
fonte
fonte
Respostas:
"pop" do primeiro elemento de uma matriz é chamado " shift " ("unshift" é a operação de adicionar um elemento na frente da matriz).
fonte
nil
em uma matriz vazia. Vejadrop
uma alternativa, conforme mencionado na outra resposta.e adicionalmente:
fonte
[].drop(1) => []
shift
se transforma a matriz no local e retorna o elemento deslocado (ounil
se a matriz estava vazia)Use o
shift
método na matrizSe você deseja remover n elementos iniciais, pode usar
x.shift(n)
fonte
Tão diferente
shift
ouslice
isso retorna a matriz modificada (útil para um liners).fonte
[][1..-1] => nil
e não[]
.[1,2,3].shift
um one-liner?arry[1..-1] || []
. Mas arry.drop (1) é ainda melhor.Isso é bem legal:
Conforme escrito nos comentários, há uma vantagem de não alterar a lista original.
fonte
(let ((head (car mylist)) (tail (cdr mylist)) ...)
header, *properties = CSV.read(file_path,encoding: 'ISO-8859-1')
ou
a.delete_at 0
fonte
Use o método shift
https://ruby-doc.org/core-2.2.0/Array.html#method-i-shift
fonte
Você pode usar:
fatia! generaliza para qualquer índice ou intervalo.
fonte
Você pode usar o método Array.delete_at (0) que excluirá o primeiro elemento.
fonte
unless x.empty?
necessário. Ele simplesmente retornanil
se o índice estiver fora da faixa.Você pode usar:
Ambos podem funcionar
fonte
Você pode usar:
arr - [arr[0]]
ou entãoarr - [arr.shift()]
ou simplesmentearr.shift(1)
fonte