У меня есть этот код ниже
resultOfAllScenarios=[[[1,2],[3,4]],[[1,2],[3,4]],[[1,2],[3,4]]]
arr = resultOfAllScenarios
arr.each do |value|
value.delete_if { |x|x.sum>3 }
end
p resultOfAllScenarios
Вывод
[[[1, 2]], [[1, 2]], [[1, 2]]]
Я копирую resultOfAllScenarios
в arr
, но исходный массив все еще мутирован. Поэтому я клонировал массив, как показано ниже
resultOfAllScenarios=[[[1,2],[3,4]],[[1,2],[3,4]],[[1,2],[3,4]]]
arr = resultOfAllScenarios.clone
arr.each do |value|
value.delete_if { |x|x.sum>3 }
end
p resultOfAllScenarios
Вывод
[[[1, 2]], [[1, 2]], [[1, 2]]]
Но исходный массив все же мутировал. Кажется, что это не клонирование внутреннего массива. Что я должен сделать, чтобы сохранить исходный массив? Кто-нибудь может мне помочь?