objetos metodos matriz mapas manejo lista clases bidimensionales arreglos array ruby arrays string

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.