metodos - matriz en ruby
Ruby: ¿Cómo puedo unir elementos de una matriz con un prefijo? (4)
Aunque esta es una pregunta muy antigua, me gustaría agregar esto:
a.any? && "%".+(a.join("__%"))
Tengo una matriz como tal:
["marblecake", "also", "the", 1337]
Me gustaría recuperar una cadena que contiene cada elemento de la matriz con el prefijo de una cadena específica, y luego unida por otra cadena específica. Por ejemplo,
["marblecake", "also", "the", 1337].join_with_prefix("%", "__")
debe resultar en
# => %marblecake__%also__%the__%1337
¿Cómo podría hacer esto?
Estaba buscando una solución para esto hoy. Encontré esta pregunta. Esta fue mi solución.
array = ["marblecake", "also", "the", 1337];
arrayString = ''''
array.each{|x| arrayString += "%" + x + "__"}
Según la sugerencia anterior:
class Array
def join_with_prefix(prefix,separator)
self.collect {|e| prefix.to_s + e }.join(separator)
end
end
p [''ab'',''cd'',''ef''].join_with_prefix(''%'',''__'')
=> "%ab__%cd__%ef"
Si su matriz está en a
entonces esta sola línea lo hará
a.map { |k| "%#{k}" }.join("_")
Fácilmente puede poner esto en una función propia, incluso agregarlo a la clase Array
para que pueda llamarlo en una matriz, como en su ejemplo.
Tenga en cuenta que el ''!'' La versión del mapa ( map!
) modificará la matriz en su lugar, tal vez no su intención.