somearray = ["some", "thing"]
anotherarray = ["another", "thing"]
somearray.push(anotherarray.flatten!)
기대했다
["some","thing","another","thing"]
답변
당신은 실행 가능한 아이디어를 가지고 있지만,이 #flatten!
잘못된 위치에 – 당신은 설정하는 데 사용할 수 있도록 그것은 수신기를 평평 [1, 2, ['foo', 'bar']]
에 [1,2,'foo','bar']
.
의심 할 여지없이 일부 접근 방식을 잊어 버릴 수 있지만 연결할 수는 있습니다 .
a1.concat a2
a1 + a2 # creates a new array, as does a1 += a2
또는 추가 / 추가 :
a1.push(*a2) # note the asterisk
a2.unshift(*a1) # note the asterisk, and that a2 is the receiver
또는 스플 라이스 :
a1[a1.length, 0] = a2
a1[a1.length..0] = a2
a1.insert(a1.length, *a2)
또는 추가하고 평평 :
(a1 << a2).flatten! # a call to #flatten instead would return a new array
답변
당신은 +
연산자를 사용할 수 있습니다 !
irb(main):001:0> a = [1,2]
=> [1, 2]
irb(main):002:0> b = [3,4]
=> [3, 4]
irb(main):003:0> a + b
=> [1, 2, 3, 4]
http://ruby-doc.org/core/classes/Array.html : 배열 클래스에 대한 모든 것을 읽을 수
있습니다
답변
가장 깨끗한 방법은 Array # concat 메서드 를 사용하는 것입니다. 동일한 배열을 수행하지만 새 배열을 만드는 Array # +와 달리 새 배열을 만들지 않습니다.
문서에서 바로 ( http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-concat ) :
concat (other_ary)
other_ary의 요소를 self에 추가합니다.
그래서
[1,2].concat([3,4]) #=> [1,2,3,4]
Array # concat 은 다차원 배열을 인수로 전달하면 평탄화하지 않습니다. 별도로 처리해야합니다.
arr= [3,[4,5]]
arr= arr.flatten #=> [3,4,5]
[1,2].concat(arr) #=> [1,2,3,4,5]
마지막으로, corelib gem ( https://github.com/corlewsolutions/corelib )을 사용하면 Ruby 핵심 클래스에 유용한 도우미를 추가 할 수 있습니다. 특히 concat을 실행하기 전에 다차원 배열을 자동으로 병합 하는 Array # add_all 메소드가 있습니다.
답변
Ruby 버전> = 2.0에서 작동하지만 이전 버전에서는 작동하지 않는 쉬운 방법 :
irb(main):001:0> a=[1,2]
=> [1, 2]
irb(main):003:0> b=[3,4]
=> [3, 4]
irb(main):002:0> c=[5,6]
=> [5, 6]
irb(main):004:0> [*a,*b,*c]
=> [1, 2, 3, 4, 5, 6]
답변
이것을 시도하십시오, 그것은 중복을 제거하는 배열을 결합합니다
array1 = ["foo", "bar"]
array2 = ["foo1", "bar1"]
array3 = array1|array2
http://www.ruby-doc.org/core/classes/Array.html
추가 문서는 “Set Union”을 참조하십시오.
답변
두 가지 방법이 있습니다.이 경우 첫 번째 방법은 새 배열을 할당합니다 (somearray = somearray + anotherarray로 변환 됨)
somearray = ["some", "thing"]
anotherarray = ["another", "thing"]
somearray += anotherarray # => ["some", "thing", "another", "thing"]
somearray = ["some", "thing"]
somearray.concat anotherarray # => ["some", "thing", "another", "thing"]
답변
a = ["some", "thing"]
b = ["another", "thing"]
추가하기 b
로 a
하고에 결과를 저장 a
:
a.push(*b)
또는
a += b
두 경우 모두 다음과 a
같습니다.
["some", "thing", "another", "thing"]
전자의 경우 b
기존 a
배열에 요소 가 추가되고 후자의 경우 두 배열이 함께 연결되어 결과가에 저장됩니다 a
.