Ruby에서 일부 코드의 동작을 이해하는 데 문제가 있습니다. 내 2D 배열의 내용을 특정 1d 배열과 일치시키고 싶다.Ruby : 특정 1d 배열과 같지 않은 경우 2 차원 배열에서 항목을 삭제하십시오.
s = [[1, 2], [2, 1], [2, 3], [3, 1], [3, 3]]
나는 초보자와 나는 기본 뭔가를 내려다해야합니다 : 내가 이해하지 못하는 것을
s = [1,2,3].repeated_permutation(2).to_a
solution = [3,1]
s.each do |x|
if x != solution
puts s.length
print "#{x}\n"
s.delete(x)
end
end
이 코드는 다음을 반환 할 것입니다.
이s = [1,2,3].repeated_permutation(2).to_a
solution = [3,1]
s.each_with_index do |x,idx|
if x != solution
s[idx] = nil
end
end
=> [nil,nil,nil,nil,nil,nil,nil,[3,1],nil]
s.flatten!.compact!
=> [3,1]
는 사람이 검사를 수행 할 수있는 좋은 루비 방법이 될 것입니다 무엇을 말해 줄 수 : 나는 확실히 적합하지 않은 방법으로 우회하여이 문제를 극복 했습니까? 미리 감사드립니다.
'each'는's '의 원소를 지우고, 원래의 9 원소의 원소 4 개를 길이 5의's'를 남깁니다. –