Foros del Web » Programando para Internet » Javascript »

¿Cómo recorrer un string y reemplazar valores?

Estas en el tema de ¿Cómo recorrer un string y reemplazar valores? en el foro de Javascript en Foros del Web. Buenas noches a todos. Estoy haciendo una función en JavaScript, en la que necesito que se examine letra por letra el string pasado y por ...
  #1 (permalink)  
Antiguo 01/04/2013, 20:19
Avatar de bryanjhv  
Fecha de Ingreso: marzo-2013
Ubicación: Cajamarca
Mensajes: 35
Antigüedad: 11 años, 8 meses
Puntos: 3
Pregunta ¿Cómo recorrer un string y reemplazar valores?

Buenas noches a todos.
Estoy haciendo una función en JavaScript, en la que necesito que se examine letra por letra el string pasado y por cada carácter reemplace por otro string.
Es decir:
Código Javascript:
Ver original
  1. function recorrer(string) {
  2.     string = string.toUpperCase();
  3.     var cadenas = [
  4.         ['A', 'http://www.facebook.com', '5028'],
  5.         ['B', 'http://www.google.com', '3052'],
  6.         ['C', ...],
  7.         ['Z', 'http://sharethis.com', '1024']
  8.     ];
  9.     // A partir de esto, si el usuario pasa:
  10.     // 'hola', se convierte en 'ABC', y la función debe dar:
  11.     // 502830521024
  12.     // ¿Cómo hago eso? "for" o "while"
  13. }
Como verán, no sé sinceramente cómo hacer para reemplazar ello.
Agradeceré mucho su ayuda.
  #2 (permalink)  
Antiguo 01/04/2013, 20:57
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: ¿Cómo recorrer un string y reemplazar valores?

Entiendo a medias, para
Cita:
se examine letra por letra el string pasado
esto
Código:
<script type="text/javascript">
//<![CDATA[
	var cadena = "texto enviado";
	for(i=0; i<cadena.length; i++) alert(i + ': ' + cadena.charAt(i));
//]]>
</script>
Ahora que vas a reemplazar y bajo que condición, no entiendo tu explicación

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 01/04/2013, 21:07
Avatar de bryanjhv  
Fecha de Ingreso: marzo-2013
Ubicación: Cajamarca
Mensajes: 35
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo recorrer un string y reemplazar valores?

Gracias por la respuesta, lo probé y funciona a la perfección.
A lo que me refería con reemplazar es como hacer una especie de "switch" pero trabajando con el array de arriba. Puedo hacer un bloque de if() con substr y while pero gastaría demasiado espacio y tengo mucho código en array:
Código Javascript:
Ver original
  1. var esfera = [
  2.     [
  3.         ['A',   'http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash3/548635_298256880289238_993382868_n.jpg',     '298256880289238'],
  4.         ['B',   'http://sphotos-e.ak.fbcdn.net/hphotos-ak-ash3/598850_298256890289237_478614916_n.jpg',     '298256890289237'],
  5.         ['C',   'http://sphotos-g.ak.fbcdn.net/hphotos-ak-prn1/23872_298256900289236_1940759013_n.jpg',     '298256900289236'],
  6.         ['D',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-snc6/254254_298256926955900_1213955725_n.jpg',    '298256926955900'],
  7.         ['E',   'http://sphotos-d.ak.fbcdn.net/hphotos-ak-snc6/183813_298256943622565_742728769_n.jpg',     '298256943622565'],
  8.         ['F',   'http://sphotos-f.ak.fbcdn.net/hphotos-ak-prn1/559622_298256946955898_1573844477_n.jpg',    '298256946955898'],
  9.         ['G',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/563979_298256950289231_823991634_n.jpg',     '298256950289231'],
  10.         ['H',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/552326_298256956955897_1576081640_n.jpg',    '298256956955897'],
  11.         ['I',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash4/320374_298256966955896_1807730120_n.jpg',    '298256966955896'],
  12.         ['J',   'http://sphotos-g.ak.fbcdn.net/hphotos-ak-prn1/149843_298256976955895_849542244_n.jpg',     '298256976955895'],
  13.         ['K',   'http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/32332_298256986955894_732974388_n.jpg',      '298256986955894'],
  14.         ['L',   'http://sphotos-f.ak.fbcdn.net/hphotos-ak-ash3/553603_298256990289227_2021539574_n.jpg',    '298256990289227'],
  15.         ['M',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/553793_298256996955893_880652486_n.jpg',     '298256996955893'],
  16.         ['N',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/581634_298257003622559_737464779_n.jpg',     '298257003622559'],
  17.         ['O',   'http://sphotos-c.ak.fbcdn.net/hphotos-ak-snc7/578406_298257006955892_1293677946_n.jpg',    '298257006955892'],
  18.         ['P',   'http://sphotos-e.ak.fbcdn.net/hphotos-ak-prn1/643877_298257043622555_1347730065_n.jpg',    '298257043622555'],
  19.         ['Q',   'http://sphotos-g.ak.fbcdn.net/hphotos-ak-ash4/407665_298257070289219_291228970_n.jpg',     '298257070289219'],
  20.         ['R',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/557785_298257093622550_1881638415_n.jpg',    '298257093622550'],
  21.         ['S',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-snc6/185018_298257110289215_1716106049_n.jpg',    '298257110289215'],
  22.         ['T',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc6/222447_298257116955881_1752243842_n.jpg',    '298257116955881'],
  23.         ['U',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/550174_298257126955880_1557061980_n.jpg',    '298257126955880'],
  24.         ['V',   'http://sphotos-g.ak.fbcdn.net/hphotos-ak-snc6/222430_298257133622546_2113165194_n.jpg',    '298257133622546'],
  25.         ['W',   'http://sphotos-e.ak.fbcdn.net/hphotos-ak-snc7/384858_298257146955878_729021692_n.jpg',     '298257146955878'],
  26.         ['X',   'http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash4/400303_298257156955877_1783531610_n.jpg',    '298257156955877'],
  27.         ['Y',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/545364_298257160289210_1759111284_n.jpg',    '298257160289210'],
  28.         ['Z',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc6/269861_298257166955876_458116389_n.jpg',     '298257166955876']
  29.     ],
  30.     [
  31.         ['A',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash4/485104_511130415564974_1237921148_n.png',    '511130415564974'],
  32.         ['B',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-ash4/184888_511130425564973_1205372950_n.png',    '511130425564973'],
  33.         ['C',   'http://sphotos-e.ak.fbcdn.net/hphotos-ak-snc7/407713_511130435564972_678737091_n.png',     '511130435564972'],
  34.         ['D',   'http://sphotos-c.ak.fbcdn.net/hphotos-ak-prn1/62218_511130445564971_1925189884_n.png',     '511130445564971'],
  35.         ['E',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/604004_511130468898302_1831282194_n.png',    '511130468898302'],
  36.         ['F',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash4/482902_511130492231633_155733978_n.png',     '511130492231633'],
  37.         ['G',   'http://sphotos-c.ak.fbcdn.net/hphotos-ak-prn1/603935_511130498898299_341421741_n.png',     '511130498898299'],
  38.         ['H',   'http://sphotos-e.ak.fbcdn.net/hphotos-ak-prn1/536672_511130505564965_764405925_n.png',     '511130505564965'],
  39.         ['I',   'http://sphotos-g.ak.fbcdn.net/hphotos-ak-ash4/378396_511130512231631_503987318_n.png',     '511130512231631'],
  40.         ['J',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-prn1/21818_511130515564964_960014379_n.png',      '511130515564964'],
  41.         ['K',   'http://sphotos-d.ak.fbcdn.net/hphotos-ak-snc7/305606_511130522231630_1809189925_n.png',    '511130522231630'],
  42.         ['L',   'http://sphotos-f.ak.fbcdn.net/hphotos-ak-ash4/378447_511130535564962_2099806009_n.png',    '511130535564962'],
  43.         ['M',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/561517_511130565564959_882048593_n.png',     '511130565564959'],
  44.         ['N',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-snc7/374541_511130598898289_1804632177_n.png',    '511130598898289'],
  45.         ['O',   'http://sphotos-g.ak.fbcdn.net/hphotos-ak-ash3/533833_511130605564955_693180702_n.png',     '511130605564955'],
  46.         ['P',   'http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/522426_511130618898287_954080016_n.png',     '511130618898287'],
  47.         ['Q',   'http://sphotos-f.ak.fbcdn.net/hphotos-ak-prn1/148144_511130625564953_2101433825_n.png',    '511130625564953'],
  48.         ['R',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-ash3/548922_511130635564952_683876059_n.png',     '511130635564952'],
  49.         ['S',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/68379_511130652231617_883537376_n.png',      '511130652231617'],
  50.         ['T',   'http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash3/532257_511130658898283_417158099_n.png',     '511130658898283'],
  51.         ['U',   'http://sphotos-e.ak.fbcdn.net/hphotos-ak-prn1/558838_511130665564949_966007244_n.png',     '511130665564949'],
  52.         ['V',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/46182_511130682231614_1339028943_n.png',     '511130682231614'],
  53.         ['W',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/59067_511130692231613_1407293597_n.png',     '511130692231613'],
  54.         ['X',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-ash3/546909_511130702231612_1486627249_n.png',    '511130702231612'],
  55.         ['Y',   'http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash4/263537_511130708898278_569633544_n.png',     '511130708898278'],
  56.         ['Z',   'http://sphotos-g.ak.fbcdn.net/hphotos-ak-ash3/579100_511130712231611_1769538387_n.png',    '511130712231611']
  57.     ],
  58.     [
  59.         ['A',   'http://sphotos-f.ak.fbcdn.net/hphotos-ak-snc7/306004_511119865566029_389506212_n.jpg',     '511119865566029'],
  60.         ['B',   'http://sphotos-e.ak.fbcdn.net/hphotos-ak-ash3/536476_511119875566028_1947540138_n.jpg',    '511119875566028'],
  61.         ['C',   'http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash3/546979_511119885566027_1976400563_n.jpg',    '511119885566027'],
  62.         ['D',   'http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/540137_511119892232693_1232029942_n.jpg',    '511119892232693'],
  63.         ['E',   'http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/532185_511119902232692_1641252075_n.jpg',    '511119902232692'],
  64.         ['F',   'http://sphotos-f.ak.fbcdn.net/hphotos-ak-snc6/230023_511119918899357_1698017634_n.jpg',    '511119918899357'],
  65.         ...
  66.     ]
  67. ];
Es decir, si se detectó la "A" en el string, debe reemplazarlo por "5028" (está con 'A' al comienzo del array).
  #4 (permalink)  
Antiguo 01/04/2013, 21:53
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: ¿Cómo recorrer un string y reemplazar valores?

Ya entendi lo que queres hacer!
mira, puedes utilizar los for de la siguiente manera
Código Javascript:
Ver original
  1. // aca defines esfera
  2.  
  3. function cadenaImagen(cadena, codigo) {
  4.     cadena = cadena.toUpperCase();
  5.     var salida = '';
  6.     for (i = 0; i < cadena.length; i++) {
  7.         for (x in esfera[codigo]) {
  8.             if (esfera[codigo][x][0] === cadena.charAt(i)) salida += esfera[codigo][x][2];
  9.         }
  10.     }
  11.     return salida;
  12. }

entonces haces algo como
cadenaImagen('Juan',0)
donde 0 define cual array principal de esfera utiliza

un saludo, y buena vibra !
  #5 (permalink)  
Antiguo 02/04/2013, 03:24
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: ¿Cómo recorrer un string y reemplazar valores?

Si estructuras mejor el array, la búsqueda es directa. Todos los caracteres tienen un código ascii.
Los códigoz de la A a la Z son secuenciales, asi que si al numero de la A le resto A, tengo un cero. Si a B le resto A, tengo un 1. Si a C le resto A, tengo un dos. y así sucesivamente.

Ideal para acceder a la posición del array directamente.

Código Javascript:
Ver original
  1. var esfera = [
  2.     [
  3.         ['http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash3/548635_298256880289238_993382868_n.jpg',     '298256880289238'], //A
  4.         ['http://sphotos-e.ak.fbcdn.net/hphotos-ak-ash3/598850_298256890289237_478614916_n.jpg',     '298256890289237'], //B
  5.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-prn1/23872_298256900289236_1940759013_n.jpg',     '298256900289236'], //C
  6.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-snc6/254254_298256926955900_1213955725_n.jpg',    '298256926955900'],
  7.         ['http://sphotos-d.ak.fbcdn.net/hphotos-ak-snc6/183813_298256943622565_742728769_n.jpg',     '298256943622565'],
  8.         ['http://sphotos-f.ak.fbcdn.net/hphotos-ak-prn1/559622_298256946955898_1573844477_n.jpg',    '298256946955898'],
  9.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/563979_298256950289231_823991634_n.jpg',     '298256950289231'],
  10.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/552326_298256956955897_1576081640_n.jpg',    '298256956955897'],
  11.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash4/320374_298256966955896_1807730120_n.jpg',    '298256966955896'],
  12.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-prn1/149843_298256976955895_849542244_n.jpg',     '298256976955895'],
  13.         ['http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/32332_298256986955894_732974388_n.jpg',      '298256986955894'],
  14.         ['http://sphotos-f.ak.fbcdn.net/hphotos-ak-ash3/553603_298256990289227_2021539574_n.jpg',    '298256990289227'],
  15.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/553793_298256996955893_880652486_n.jpg',     '298256996955893'],
  16.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/581634_298257003622559_737464779_n.jpg',     '298257003622559'],
  17.         ['http://sphotos-c.ak.fbcdn.net/hphotos-ak-snc7/578406_298257006955892_1293677946_n.jpg',    '298257006955892'],
  18.         ['http://sphotos-e.ak.fbcdn.net/hphotos-ak-prn1/643877_298257043622555_1347730065_n.jpg',    '298257043622555'],
  19.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-ash4/407665_298257070289219_291228970_n.jpg',     '298257070289219'],
  20.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/557785_298257093622550_1881638415_n.jpg',    '298257093622550'],
  21.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-snc6/185018_298257110289215_1716106049_n.jpg',    '298257110289215'],
  22.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc6/222447_298257116955881_1752243842_n.jpg',    '298257116955881'],
  23.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/550174_298257126955880_1557061980_n.jpg',    '298257126955880'],
  24.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-snc6/222430_298257133622546_2113165194_n.jpg',    '298257133622546'],
  25.         ['http://sphotos-e.ak.fbcdn.net/hphotos-ak-snc7/384858_298257146955878_729021692_n.jpg',     '298257146955878'],
  26.         ['http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash4/400303_298257156955877_1783531610_n.jpg',    '298257156955877'],
  27.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/545364_298257160289210_1759111284_n.jpg',    '298257160289210'],
  28.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc6/269861_298257166955876_458116389_n.jpg',     '298257166955876'] //Z
  29.     ],
  30.      [
  31.         ['http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash3/548635_298256880289238_993382868_n.jpg',     '298256880289238'],
  32.         ['http://sphotos-e.ak.fbcdn.net/hphotos-ak-ash3/598850_298256890289237_478614916_n.jpg',     '298256890289237'],
  33.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-prn1/23872_298256900289236_1940759013_n.jpg',     '298256900289236'],
  34.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-snc6/254254_298256926955900_1213955725_n.jpg',    '298256926955900'],
  35.         ['http://sphotos-d.ak.fbcdn.net/hphotos-ak-snc6/183813_298256943622565_742728769_n.jpg',     '298256943622565'],
  36.         ['http://sphotos-f.ak.fbcdn.net/hphotos-ak-prn1/559622_298256946955898_1573844477_n.jpg',    '298256946955898'],
  37.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/563979_298256950289231_823991634_n.jpg',     '298256950289231'],
  38.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/552326_298256956955897_1576081640_n.jpg',    '298256956955897'],
  39.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash4/320374_298256966955896_1807730120_n.jpg',    '298256966955896'],
  40.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-prn1/149843_298256976955895_849542244_n.jpg',     '298256976955895'],
  41.         ['http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/32332_298256986955894_732974388_n.jpg',      '298256986955894'],
  42.         ['http://sphotos-f.ak.fbcdn.net/hphotos-ak-ash3/553603_298256990289227_2021539574_n.jpg',    '298256990289227'],
  43.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/553793_298256996955893_880652486_n.jpg',     '298256996955893'],
  44.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/581634_298257003622559_737464779_n.jpg',     '298257003622559'],
  45.         ['http://sphotos-c.ak.fbcdn.net/hphotos-ak-snc7/578406_298257006955892_1293677946_n.jpg',    '298257006955892'],
  46.         ['http://sphotos-e.ak.fbcdn.net/hphotos-ak-prn1/643877_298257043622555_1347730065_n.jpg',    '298257043622555'],
  47.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-ash4/407665_298257070289219_291228970_n.jpg',     '298257070289219'],
  48.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/557785_298257093622550_1881638415_n.jpg',    '298257093622550'],
  49.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-snc6/185018_298257110289215_1716106049_n.jpg',    '298257110289215'],
  50.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc6/222447_298257116955881_1752243842_n.jpg',    '298257116955881'],
  51.         ['http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash3/550174_298257126955880_1557061980_n.jpg',    '298257126955880'],
  52.         ['http://sphotos-g.ak.fbcdn.net/hphotos-ak-snc6/222430_298257133622546_2113165194_n.jpg',    '298257133622546'],
  53.         ['http://sphotos-e.ak.fbcdn.net/hphotos-ak-snc7/384858_298257146955878_729021692_n.jpg',     '298257146955878'],
  54.         ['http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash4/400303_298257156955877_1783531610_n.jpg',    '298257156955877'],
  55.         ['http://sphotos-b.ak.fbcdn.net/hphotos-ak-ash3/545364_298257160289210_1759111284_n.jpg',    '298257160289210'],
  56.         ['http://sphotos-h.ak.fbcdn.net/hphotos-ak-snc6/269861_298257166955876_458116389_n.jpg',     '298257166955876']
  57.     ]
  58. ];
  59.  
  60. function extraer(array, caracter){
  61.     var indice=caracter.toUpperCase().charCodeAt(0)-"A".charCodeAt(0);
  62.     return { url: esfera[array][indice][0] , code: esfera[array][indice][1]};              
  63. }
  64.                
  65. function procesar(cadena){
  66.        var n=cadena.length;
  67.        for (var i=0;i<n;i++)
  68.        {
  69.            var info=extraer(0,cadena.charAt(i));
  70.            alert(cadena.charAt(i)+" "+info.url+" "+info.code);
  71.        }
  72. }
  73.  
  74. procesar("casa");
  #6 (permalink)  
Antiguo 02/04/2013, 19:49
Avatar de bryanjhv  
Fecha de Ingreso: marzo-2013
Ubicación: Cajamarca
Mensajes: 35
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo recorrer un string y reemplazar valores?

Cita:
Iniciado por chwc Ver Mensaje
Código Javascript:
Ver original
  1. var esfera = [...];
  2. function cadenaImagen(cadena, codigo) {
  3.     cadena = cadena.toUpperCase();
  4.     var salida = '';
  5.     for (i = 0; i < cadena.length; i++) {
  6.         for (x in esfera[codigo]) {
  7.             if (esfera[codigo][x][0] === cadena.charAt(i)) salida += esfera[codigo][x][2];
  8.         }
  9.     }
  10.     return salida;
  11. }

entonces haces algo como
cadenaImagen('Juan',0)
donde 0 define cual array principal de esfera utiliza
Gracias, me sirvió de mucho para el caso. ¿En [x][0] === cadena... son "===" o "=="?
  #7 (permalink)  
Antiguo 02/04/2013, 20:12
Avatar de bryanjhv  
Fecha de Ingreso: marzo-2013
Ubicación: Cajamarca
Mensajes: 35
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo recorrer un string y reemplazar valores?

Cita:
Iniciado por marlanga Ver Mensaje
Si estructuras mejor el array, la búsqueda es directa.
Tienes razón. Además de estar mejor estructurado, ocupa menos espacio en KB (puede no ser mucho pero en WordPress, al menos en mi sitio, eso haría extra lenta la carga del post).
Cita:
Iniciado por marlanga Ver Mensaje
Todos los caracteres tienen un código ASCII.
Intenté hacerlo con esto en otra función, pero no me salió. Sé que la "A" corresponde a 65 y la "Z" a 90.[/QUOTE]
Unas mejoras que hice de esto fue que en lugar de "A".charCodeAt(0); puse 65 :)
Luego, lo único que necesitaría sería el código, haciendo esto:
Código Javascript:
Ver original
  1. var esfera = [...];
  2. function extract(idarray, caracter) {
  3.     var indice = caracter.toUpperCase().charCodeAt(0) - 65;
  4.     return {
  5.         url: esfera[idarray][indice][0],
  6.         codigo: esfera[idarray][indice][1]
  7.     };
  8. }
  9. function process(cadena) {
  10.     var n = cadena.length;
  11.     var resultado = '';
  12.     for (var i = 0; i < n; i++) {
  13.         var informacion = extract(0, cadena.charAt(i));
  14.         resultado = resultado + '[[' + informacion.codigo + ']] ';
  15.     }
  16.     alert(resultado);
  17. }
  18. process('forosdelweb');
Muchas gracias por todo, hice sólo unas modificaciones como "code" pues podría tener confusiones al trabajar por ser palabra clave (nunca lo usé pero ST2 la detecta como tal). Además, la adecué a lo que necesitaba. Muy útiles todos los aportes recibidos :)
Ahora usen la función, copien lo generado en el chat de Facebook y a ver qué les aparece
Ahora, una pregunta, la función procesar o process, ¿soportarán eventos "onkeyup" al ser llamadas?
  #8 (permalink)  
Antiguo 02/04/2013, 20:20
Avatar de bryanjhv  
Fecha de Ingreso: marzo-2013
Ubicación: Cajamarca
Mensajes: 35
Antigüedad: 11 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo recorrer un string y reemplazar valores?

Cita:
Iniciado por chwc Ver Mensaje
Ya entendi lo que queres hacer!
mira, puedes utilizar los for de la siguiente manera
Código Javascript:
Ver original
  1. // aca defines esfera
  2.  
  3. function cadenaImagen(cadena, codigo) {
  4.     cadena = cadena.toUpperCase();
  5.     var salida = '';
  6.     for (i = 0; i < cadena.length; i++) {
  7.         for (x in esfera[codigo]) {
  8.             if (esfera[codigo][x][0] === cadena.charAt(i)) salida += esfera[codigo][x][2];
  9.         }
  10.     }
  11.     return salida;
  12. }

entonces haces algo como
cadenaImagen('Juan',0)
donde 0 define cual array principal de esfera utiliza

un saludo, y buena vibra !
Viéndolo bien, sería mucho mejor usar este código, pues justamente hace lo que necesito. Lamento no haberlo dicho, pero también quería minimizar al máximo el array para ocupar menos espacio. Veré cuál de los dos métodos (ambos funcionan a la perfección) me es más fácil de comprender y tiene mayor velocidad en el manejo de los datos. Sinceramente entiendo mejor tu código y sólo maneja una función.
Cuento mis experiencias por aquí en cuanto pruebe ambos

Etiquetas: arrays, javascript-funciones, strings, uppercase
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:29.