2 의 루비 어레이에는 병합해야 및 인터리브

나는 다음 코드:

a = ["Cat", "Dog", "Mouse"]
s = ["and", "&"]

I want to 병합합니다 어레이입니다 어레이입니다 'a' 의 '에 주는 봐요.

["Cat", "and", "Dog", "&", "Mouse"]

39, doc, 루비 어레이입니다 및 열거 보았으매 통해 내가 don& 이를 달성할 수 있는 그런 방법을 볼 수 없다.

내가 할 수 있는 방법이 통해 반복 없이 이 어레이당?

질문에 대한 의견 (2)
해결책

함께 할 수 있습니다.

a.zip(s).flatten.compact
해설 (12)

이 결과, t give a # 39 won& 순서를 어레이입니다 크리스씨가 주문하신거 신앙이니라 the order of the matter, t, 결과 어레이입니다 doesn& # 39, a = b 사용할 수 있습니다 '그냥'. # 39 don& 경우, 'a', 'b', 't want to 변형 한 결과 변수에 접근하는 할당하십시오 쓸 수 있습니다.

설명서 참조 http://www.ruby-doc.org/core/classes/Array.html # M000275 설정되었습니다 어레이입니다 수업을 했다.

이 대답 # 39, t want 복제본임을 어레이입니다 요소를 don& 가정합니다. 허용할 경우 요소 '를 통해 최종 어레이입니다 복제본임을 어떻게해야합니다 + = b' 는 또 어떤가. # 39 don& 다시 사용할 경우, a + b '와' a ',' t want to 변형 할당하십시오 결과를 변수.

이에 대해 일부 이 페이지의 설명, 이 두 가지 솔루션을 협력합니다 어레이에는 크기.

해설 (3)

39 don& 경우, 그냥 [연합] [1] 연산자를 사용하여 복제, 왜안돼요 된 것입니다.

new_array = a | s

[1]: # 내가 7c 방법 .5/array.html http://ruby-doc.org/core-2.1

해설 (4)

39 의 크기가 서로 다른 여러 어레이에는 인터리브를 here& 수 있는 솔루션 (일반 솔루션):

arr = [["Cat", "Dog", "Mouse", "boo", "zoo"],
 ["and", "&"],
 ["hello", "there", "you"]]

first, *rest = *arr; first.zip(*rest).flatten.compact
=> ["Cat", "and", "hello", "Dog", "&", "there", "Mouse", "you", "boo", "zoo"]
해설 (2)
s.inject(a, : ["Cat", "Dog", "Mouse", "and", "&"]

39 이 doesn& 있지만, s, t 순서를 제공하십시오 너회가 주문하신거 it& # 39 를 하나의 좋은 방법이 두 어레이에는 병합합니다 추가하여.

해설 (1)

하지만, s not 정확히요 우아한 it& # 39 의 어레이에는 작동하잖아 모든 크기:

>> a.map.with_index { |x, i| [x, i == a.size - 2 ? s.last : s.first] }.flatten[0..-2] 
#=> ["Cat", "and", "Dog", "&", "Mouse"]
해설 (2)

생각 좀 더 일반적인 솔루션을 사용할 수 있는 첫 번째 어레이입니다 isn& 경우에도 사용할 수 있는 가장 긴 임의의 수의 어레이에는? # 39 아니다.

a = [
    ["and", "&"],
    ["Cat", "Dog", "Mouse"]
]

b = a.max_by(&:length)
a -= [b]
b.zip(*a).flatten.compact

 => ["Cat", "and", "Dog", "&", "Mouse"]
해설 (0)

또한 인터리브 할 수 있는 방법 중 하나는 작성하더라도 어느쪽이야 위한 방법 중 가장 큰 어레이입니다 zip 은 어레이에는 모두 채울 때까지 ',' 다른 배열 크기. 이렇게 하면 작성하더라도 의제가 될 수도 있는 요소점 재배케하여 어레이입니다 퍼스트 포지션:

preferred_arr = ["Cat", "Dog", "Mouse"]
other_arr = ["and","&","are","great","friends"]

preferred_arr  ["Cat", "and", "Dog", "&", "Mouse", "are", "great", "friends"]
해설 (1)

'A' &amp 모두 처리할 수 있는 것이다. 's' 같은 크기의 않습니다.

a.zip(s).flatten.compact | s

'-' a '의' 때 '가' 모두 '자코 파스트 제거하시겠습니까 보다 큽니다.

  • 'a' 의 '가 나머지 항목 중' 의 '의 경우 추가 작습니다.
해설 (0)
arr = [0, 1]
arr + [2, 3, 4]

//outputs [0, 1, 2, 3, 4]
해설 (2)