Посмотрев здесь, я определил текущий метод тестирования, если массив неизвестного размера содержит совпадающие элементы;
def matching_elements? array
array.uniq.length == 1
end
Я пытался расширить это, чтобы охватить двумерный массив неизвестныхsize с использованием следующего:
def all_elements_identical? array
array.each { |subarray| matching_elements?(subarray) }
end
Вышеприведенное возвращает true/false
для каждого подмассива, но мне трудно подумать о том, как использовать результаты объединенных методов в условном выражении.Я хотел бы сделать что-то, основываясь на том, содержит ли массив 2d совпадающие элементы или нет, поэтому для «тестового» массива оба значения должны быть истинными
matching_elements?(test)
all_elements_identical?(test)
Вот код I 'Я использовал «puting» как раз для подтверждения того, что методы делают то, что я намереваюсь, но я не знаю, как перевести эту возвращенную информацию в условное выражение, указанное в скобках в комментарии кода;
test = [[2,2,2,2,2,2],
[2,2,2,2,2,2],
[2,2,2,2,2,2],
[2,2,2,2,2,2],
[2,2,2,2,2,2],
[2,2,2,2,2,2],
[2,2,2,2,2,2]]
def is_identical? array
array.uniq.length == 1
end
def all_identical? array
array.each { |subarray| puts is_identical?(subarray)}
end
print "Primary array contains matching elements? "
puts is_identical?(test)
puts "Subarrays each contain matching elements?"
all_identical?(test)
=begin
if (2d elements are all identical) == true
"YAY"
end
=end