배열의 시작 부분으로 요소를 푸시하는 가장 쉬운 방법은 무엇입니까?


답변:


387

unshift방법을 사용하는 것은 어떻습니까?

ary.unshift(obj, ...) → ary
다른 요소를 위쪽으로 이동하여 개체를 자기 앞에 추가합니다.

그리고 사용 중 :

irb>> a = [ 0, 1, 2]
=> [0, 1, 2]
irb>> a.unshift('x')
=> ["x", 0, 1, 2]
irb>> a.inspect
=> "["x", 0, 1, 2]"

그것이 내가 찾던 이름입니다.
Ed S.

1
나는 빠른 스캔에서 그들을 보지 못했습니다.
Ed S.

1
@Ed : 페이지 상단에있는 메소드 목록의 형식이 더 좋을 수 있으므로 시각적으로 스캔하기가 매우 어렵습니다. 내가 :) 찾고 있던 방법 이름을 알고 있기 때문에 나는 그것을 발견
MU가 너무 짧은

118
당신이 사이에 문제가 기억하는가있는 경우 shiftunshift같은 배열과 배열에서 어느 제거합니다에 추가되는을 떨어 뜨리에 'F'정신적 이름에서 당신이 방향에 같은 모든 너무 명확한 그림을 얻을. (그리고 여러분은이 방법들이 배열의 "끝"에서 작동하지 않는다는 것을 기억해야합니다.;)
Phrogz

3
@Phrogz 몇 년 동안 들어 본 최고의 니모닉 기술! :-)
konung

47

당신은 사용할 수 있습니다 insert:

a = [1,2,3]
a.insert(0,'x')
=> ['x',1,2,3]

여기서 첫 번째 인수는 삽입 할 인덱스이고 두 번째 인수는 값입니다.


23
array = ["foo"]
array.unshift "bar"
array
=> ["bar", "foo"]

경고, 그것은 파괴적입니다!


11

배열 연결을 사용할 수도 있습니다 .

a = [2, 3]
[1] + a
=> [1, 2, 3]

이것은 새로운 배열을 만들고 원본을 수정하지 않습니다.


11

Ruby 2.5.0부터 Array는 prepend 메소드 (메소드의 별명) 와 함께 제공됩니다 unshift.


1
이것은 루비 2.4.4p296에서도 작동하므로 루비 2.4에서도 가능합니까?
Obromios

9

methodsolverRuby 함수를 찾는 데 사용할 수 있습니다 .

다음은 작은 스크립트입니다.

require 'methodsolver'

solve { a = [1,2,3]; a.____(0) == [0,1,2,3] }

이 인쇄를 실행

Found 1 methods
- Array#unshift

다음을 사용하여 methodsolver를 설치할 수 있습니다

gem install methodsolver

쿨, LOL을 작성하는 것이 가능하다고 생각하지 않았다
Marko Avlijaš

irb> require 'methodsolver'LoadError: cannot load such file -- method_sourcefrom from ... from의 원인 입니다 /var/lib/gems/1.9.1/gems/methodsolver-0.0.4/lib/methodsolver.rb:2. 0.9.6 IRB 루비 1.9.3p484, 우분투 (14)
카밀 Goudeseune

1
사용해보십시오 pry대신irb
akuhn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.