나는 다음 코드:
a = ["Cat", "Dog", "Mouse"]
s = ["and", "&"]
I want to 병합합니다 어레이입니다 어레이입니다 'a' 의 '에 주는 봐요.
["Cat", "and", "Dog", "&", "Mouse"]
내가 할 수 있는 방법이 통해 반복 없이 이 어레이당?
이 결과, 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 변형 할당하십시오 결과를 변수.
이에 대해 일부 이 페이지의 설명, 이 두 가지 솔루션을 협력합니다 어레이에는 크기.
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"]
하지만, 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"]
생각 좀 더 일반적인 솔루션을 사용할 수 있는 첫 번째 어레이입니다 isn& 경우에도 사용할 수 있는 가장 긴 임의의 수의 어레이에는? # 39 아니다.
a = [
["and", "&"],
["Cat", "Dog", "Mouse"]
]
b = a.max_by(&:length)
a -= [b]
b.zip(*a).flatten.compact
=> ["Cat", "and", "Dog", "&", "Mouse"]
또한 인터리브 할 수 있는 방법 중 하나는 작성하더라도 어느쪽이야 위한 방법 중 가장 큰 어레이입니다 zip 은 어레이에는 모두 채울 때까지 ',' 다른 배열 크기. 이렇게 하면 작성하더라도 의제가 될 수도 있는 요소점 재배케하여 어레이입니다 퍼스트 포지션:
preferred_arr = ["Cat", "Dog", "Mouse"]
other_arr = ["and","&","are","great","friends"]
preferred_arr << nil while preferred_arr.length < other_arr.length
preferred_arr.zip(other_arr).flatten.compact
#=> ["Cat", "and", "Dog", "&", "Mouse", "are", "great", "friends"]