개별 일치하는 요소에 대한 확인 나는이 두 배열 두 개의 서로 다른 배열
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
공지 사항
있습니다. 어떤 요소가 일치하면 true를 반환하는지 알려주는 검사를 찾고 싶습니다.예를 들어,이 방법은 arr1.include?(arr2)
이 작동하지 않지만 원하는 방법을 찾고 있습니다.
개별 일치하는 요소에 대한 확인 나는이 두 배열 두 개의 서로 다른 배열
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
공지 사항
있습니다. 어떤 요소가 일치하면 true를 반환하는지 알려주는 검사를 찾고 싶습니다.예를 들어,이 방법은 arr1.include?(arr2)
이 작동하지 않지만 원하는 방법을 찾고 있습니다.
나는이 작업을 수행 할 수있는 좋은 방법을 발견했다 :
(arr1 & arr2).any?
&
는 일부 요소가 두 배열에 존재하는 경우,이 이러한 요소를 반환합니다, 논리 연산자입니다.
any?
은 배열에 요소가 있는지 확인합니다. 하나 이상 존재하면 true
을 반환합니다.
arr1.any? { |item| arr2.include?(item) }
이렇게하면 첫 번째 배열의 항목이 두 번째 배열에 포함되어 있는지 확인합니다.
두 배열 사이의 교차점을 사용하여 이렇게하면 결과에 일치하는 요소가 있는지 확인할 수 있습니다. 귀하의 경우에는
(arr1 & arr2).present?
우리는
arr1 = ["dog", "cat", "bird"]
arr2 = ["fish", "bear", "bird"]
결과는 다음과 같이 될 수 있습니다
(arr1 & arr2).present?
그것은 그것의 빈과 존재하지 않는, 그래서 ['bird']
돌아갑니다? 사실을 돌려 줄 것입니다.
'현재 클래스'버전의 Ruby 버전은'Array' 클래스에 포함되어 있습니까? –
Array 클래스에'present? '가 포함되어 있지 않으므로 메서드 오류가 발생하지 않습니다. –
레일에 있습니다. 우리는 [1,2]. 존재를 할 수 있습니까? 그것은 사실을 돌려 줄 것입니다. –
'&'및'any? '는 무엇을합니까? –
'&'는 논리 연산자이며, 두 개의 배열에 무언가 요소가 있으면 반환합니다. 배열에 something 요소가 있는지 검사하는 'any?'가 하나 이상이면 true를 반환합니다. –
Thanks @ BartekGladys. 제 요점은이 정보가 당신의 깔끔한 해결책에 포함되어 더 완벽 해 지도록해야한다는 것입니다. –