Как подставить все значения в двумерный массив в Ruby
У меня есть двумерный массив, который выглядит так:
[true,false,false]
[false,true,false]
[false,false,true]
Я хотел бы заменить все истинные (bool) значения на "истина" (строка) и все ложные на "ложь"
2 ответа
Решение
Предполагая, что у вас есть массив массивов:
a = [[true,false,false], [false,true,false], [false,false,true]]
a.each { |x| x.map!(&:to_s) }
a # => [["true", "false", "false"], ["false", "true", "false"], ["false", "false", "true"]]
Да, делайте как ниже, используя Array#map
:
a = [[true,false,false], [false,true,false], [false,false,true]]
# you can also assign this to a new local variable instead of a,
# if you need to use your source array object in future anywhere.
a = a.map { |e| e.map(&:to_s) }