Ruby에서 배열을 다른 배열에 추가하고 다차원 결과가 나오지 않게 하려면 어떻게 해야 하나요?
somearray = ["some", "thing"]
anotherarray = ["another", "thing"]
somearray.push(anotherarray.flatten!)
예상했던
["some","thing","another","thing"]
448
17
# 39, 아이디어, 그러나 've got a 작업 you& 플랫화할!' 는 엉뚱한 곳으로 사용할 수 있습니다 - it 병합합니다 리시버인 그러하매 迈向 선반가공 ' [1, 2, [& # 39, & # 39,, # 39 foo& bar& # 39.]]' 에 ' [1.2, & # 39, & # 39,, # 39 foo& bar& # 39]'.
39 m, 그리고 일부 i& 의심없는 외곽진입 수 있지만 연결 :
또는 prepend / 덮어쓰기/추가 :
또는 스플라이스를 :
또는 덮어쓰기/추가 및 플랫화할 :
'+' 연산자를 사용하면 됩니다!
배열 클래스에 대한 자세한 내용은 여기에서 확인할 수 있습니다: http://ruby-doc.org/core/classes/Array.html
* 를 사용할 수 있는 방법, concat 어레이입니다 깨끗한 외곽진입 새로운 것을 만들 수 없을 것이라고 어레이입니다 (# + 같은 일을 할 수 있는 새로운 것을 만들 수 있지만 달리 어레이입니다 어레이입니다).
에서 바로 문서 (http://www.ruby-doc.org/core-1.9 .3/array.html # 내가 concat 방법): >. # # concat (other_ary) > >; 요소를 첨부됩니다 other_ary 자체.
그래서
* 어레이입니다 통과될 경우 인수로 concat 다차원 배열 플랫할 않습니다. # 39 you& ll 처리해야 하는, 별도로 있는.
마지막으로, 우리의 코레리브 컴팩트형 사용할 수 있습니다 (https://github.com/corlewsolutions/corelib) 를 알고 있는 유용한 루비 자도으로 기본 클래스. 특히 우리가 가지고 있는 add_all # 어레이입니다 메서드로부터 다차원 어레이에는 플랫화할 하면 자동으로 실행하기 전에 concat.
이렇게 하면 배열을 결합하여 중복을 제거합니다.
http://www.ruby-doc.org/core/classes/Array.html
자세한 문서는 을 참조하세요;
쉬운 방법을 사용할 수 있는 것이 아니라, 루비 버전 > = 2.0tb 이전 버전:
다음은 이 경우엔 그 첫 번째 방법은 두 가지 방법 공지 color_name 새로운 스토리지 (소미어리 소미어리 + 아노테라리 있습니다 =)
' (array1 + array2) 지우니크'
이렇게 확보하십시오 array1 요소 1. 중복되지 않는 얻을 수 있습니다.
첨부하려면 'b' 를 'a' 와 'a' 에서 결과를 저장하기:
또는
두 경우 모두 'a' 됩니다.
그러나 전자의 경우 요소를 'a' 와 'b' 는 기존 덧붙여집니다 어레이로써, 후자의 경우에는 그 결과 'a' 로 연결된 두 개의 어레이에는 함께 저장됩니다.
39 에 대한 적절한 답을 오토메이티드 정성 들여 @Pilcrow& 유일한 대규모 어레이에는 concat ' (' + ') 는' 은 빠르고 이후 새 객체를 할당할지 쓰레기요 수집됩니다 루프지 안에 작동할 때 수 없습니다.
39 의 here& 벤치마크:
결과:
또 다른 방법은 그냥 그렇게 해.
이 문제는 본질적으로 Ruby" 시스템을 어떻게 연결할 ";). 답은 'concat' 또는 '+' 에서 언급한 대로 자연스럽게 사용할 수 있는 거의 모든 문제를 해결해 드립니다.
자연스러운 확장명은 수행할 수 있는 방법을 묻는 질문에 약간만이라도 " 행일 와이즈 연결, 2d 어레이에는 ruby". 이렇게 질문을 할 때, 루비,) 는 봤 " 연결 matrices" 상단형 결과: 그러하매 생각해봤죠 꼭 이래야겠어요 내 질문에 대한 답을 남겨두십시오 etlat (부탁받지 않은 수준이지만 관련) 이 후세.
일부 응용 프로그램의 " concatenate", 할 수 있습니다. 두 개의 2D 어레이에는 행일 와이즈. 같은 일이,
이 같은 일이 " augmenting"; matrix. 예를 들어, 내가 이 방법을 하나 만드는 인접행렬 아웃해야 그래프란다 표현하기 위해 사용되는 여러 작은 호환표. 이 기법은 꼭 이래야겠어요 반복할 수밖에 없는 방식으로 생각할 수 있는 컴포넌트 또는 답답한 것은 오류가 발생할 가능성이 높은 것으로 알고 있다. 예를 들어 ',' 내가 권능은하나님께 each_with_index 수행할 수 있을 것이다. 대신 내가 결합됨 [zip] [0] 및 [플랫화할] [1] 다음과 같이
[0]: # 내가 메서드로부터 zip .0/array.html http://ruby-doc.org/core-2.2 [1]: # 내가 플랫화할 방법 .0/array.html http://ruby-doc.org/core-2.2
이 경우 또는 스칼라, 배열 및 운영까지도 막기 위해 새로운 데이터 될 수 있는 경우, 새로운 데이터 네스트된 인턴이었을때를 어레이입니다 쥐포가 되는거야 연산자는 멋져! It 에 대한 스칼라 되돌려줍니다 스칼라 및 오버클로킹된 압축을 푼 인수만 목록니다 어레이입니다.
<! - begin 스니핏: js 숨기십시오: > 거짓값 -;
끝 - < 스니핏 >;!
'[&''일부&'', &''사물&''] + [&''다른&'' + &''사물&'']`입니다.
39 m ',' 잘 작동하는 i& 아니예 언급한 것은 놀랄 수 있을 때 배열입니다 어레이에는:
39 이 won& dup 제거하시겠습니까 있지만, t
절감뿐만 dup.
난 후 그 같은 곳에 쉽게 푸시할 또는 덮어쓰기/추가 어레이에는 플랫화할 있습니다.
소미어리 = [" some" thing" ";;;]
아노테라리 = [" another" thing" ";;;]