Programing

Ruby : 배열에서 첫 번째 요소를 제거하는 가장 쉬운 방법은 무엇입니까?

lottogame 2020. 4. 7. 08:17
반응형

Ruby : 배열에서 첫 번째 요소를 제거하는 가장 쉬운 방법은 무엇입니까?


배열이 있다고 가정 해 봅시다.

[0, 132, 432, 342, 234]

첫 번째 요소를 제거하는 가장 쉬운 방법은 무엇입니까? (0)


배열의 첫 번째 요소를 "팝"하는 것을 " shift "라고합니다 ( "unshift"는 배열 앞에 하나의 요소를 추가하는 작업입니다).


a = [0,1,2,3]

a.drop(1)
# => [1, 2, 3] 

a
# => [0,1,2,3]

그리고 추가적으로 :

[0,1,2,3].drop(2)
=> [2, 3]

[0,1,2,3].drop(3)
=> [3] 

shift배열 에서 메소드 사용

>> x = [4,5,6]
=> [4, 5, 6]                                                            
>> x.shift 
=> 4
>> x                                                                    
=> [5, 6] 

n 개의 시작 요소를 제거하려면 사용할 수 있습니다 x.shift(n)


[0, 132, 432, 342, 234][1..-1]
=> [132, 432, 342, 234]

달리 shift또는 slice이것은 수정 된 배열을 반환합니다 (한 라이너에 유용합니다).


이것은 매우 깔끔합니다.

head, *tail = [1, 2, 3, 4, 5]
#==> head = 1, tail = [2, 3, 4, 5]

주석에 쓰여 있듯이 원본 목록을 변경하지 않는 이점이 있습니다.


또는 a.delete_at 0


시프트 방식 사용

array.shift(n) => Remove first n elements from array 
array.shift(1) => Remove first element

https://ruby-doc.org/core-2.2.0/Array.html#method-i-shift


당신이 사용할 수있는:

a.slice!(0)

일부분! 모든 인덱스 또는 범위로 일반화합니다.


첫 번째 요소를 삭제하는 Array.delete_at (0) 메소드를 사용할 수 있습니다.

 x = [2,3,4,11,0]
 x.delete_at(0) unless x.empty? # [3,4,11,0]

: 당신은 사용할 수 있습니다
arr - [arr[0]]또는 다른 arr - [arr.shift()]하거나arr.shift(1)


당신이 사용할 수있는:

 a.delete(a[0])   
 a.delete_at 0

둘 다 작동 할 수 있습니다

참고 URL : https://stackoverflow.com/questions/3615700/ruby-what-is-the-easiest-way-to-remove-the-first-element-from-an-array

반응형