Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Obtener primra letra de cada palabra

Estas en el tema de Obtener primra letra de cada palabra en el foro de Javascript en Foros del Web. Hola a todos Conocen alguna función con la que obtenga la primera letra cada palabra? Por Ej. "prueba para obtener primera letra" y lo que ...
  #1 (permalink)  
Antiguo 21/06/2014, 18:00
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 17 años, 11 meses
Puntos: 10
Obtener primra letra de cada palabra

Hola a todos
Conocen alguna función con la que obtenga la primera letra cada palabra?
Por Ej. "prueba para obtener primera letra" y lo que me debe obtener es: ppopl


Gracias de ante mano.
__________________
@ivancamiloGo
  #2 (permalink)  
Antiguo 21/06/2014, 18:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Obtener primra letra de cada palabra

Separa la oración en palabras a partir de los espacios que hay entre ellas, utilizando para ello el método split, formando así un array con dichas palabras. Luego, solo te queda recorrer ese array y asignar la primera letra de cada palabra a una variable que luego imprimirás. Para obtener a la primera letra de la palabra, tienes que hacer referencia a la posición cero de la misma.

Código Javascript:
Ver original
  1. var palabras = "prueba para obtener primera letra",
  2.     array = palabras.split(" "),
  3.     total = array.length,
  4.     resultado = "";
  5.  
  6. for (var i = 0; i < total; resultado += array[i][0], i++);
  7. console.log(resultado); //Imprime 'ppopl'

Y si quieres tener este proceso como función, basta con que crees una y coloques el código dentro de ella.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 26/06/2014, 09:31
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 17 años, 11 meses
Puntos: 10
Respuesta: Obtener primra letra de cada palabra

Cita:
Iniciado por Alexis88 Ver Mensaje
Separa la oración en palabras a partir de los espacios que hay entre ellas, utilizando para ello el método split, formando así un array con dichas palabras. Luego, solo te queda recorrer ese array y asignar la primera letra de cada palabra a una variable que luego imprimirás. Para obtener a la primera letra de la palabra, tienes que hacer referencia a la posición cero de la misma.

Código Javascript:
Ver original
  1. var palabras = "prueba para obtener primera letra",
  2.     array = palabras.split(" "),
  3.     total = array.length,
  4.     resultado = "";
  5.  
  6. for (var i = 0; i < total; resultado += array[i][0], i++);
  7. console.log(resultado); //Imprime 'ppopl'

Y si quieres tener este proceso como función, basta con que crees una y coloques el código dentro de ella.

Saludos
Muchas gracias por tu explicación y ejemplo.
__________________
@ivancamiloGo
  #4 (permalink)  
Antiguo 26/06/2014, 10:01
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Obtener primra letra de cada palabra

Es mucho mas simple (2 lineas de codigo) en realidad:

Código Javascript:
Ver original
  1. var palabras = "prueba para obtener primera letra",
  2.     resultado= palabras.replace(/([a-zA-Z]{0,} )/g, function(match){ return (match.trim()[0]);});
  3.    
  4. console.log(resultado);
__________________
Salu2!
  #5 (permalink)  
Antiguo 26/06/2014, 10:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Obtener primra letra de cada palabra

Pablito, acabo de probar tu solución pero no obtengo el resultado que nuestro amigo after espera. Él quiere la primera letra de cada palabra y el resultado de tu solución es "ppopletra".

Creo que le hace falta un pequeño ajuste para que marche como se espera.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 26/06/2014, 11:01
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Obtener primra letra de cada palabra

Alexis: amigo y compañero... lo acabo de volver a probar en Chrome (y en Firefox con document.write) y arroja por consola "ppopletra" ... no entiendo que puede estar pasando

Que resultado obtienes ?
__________________
Salu2!
  #7 (permalink)  
Antiguo 26/06/2014, 11:46
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Obtener primra letra de cada palabra

Obtengo lo mismo que tú, pero hice un pequeño cambio:

Código Javascript:
Ver original
  1. var palabras = "prueba para obtener primera letra",
  2.     resultado= palabras.replace(/[A-Za-z]+/g, function(match){ return (match.trim()[0]);});
  3.    
  4. console.log(resultado.replace(/\s/g, ''));

Y ahora sí imprime la primera letra de cada palabra: "ppopl".

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 26/06/2014, 12:00
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Obtener primra letra de cada palabra

Amigo ... no me di cuenta el "bug", gracias por el aviso!!

Código Javascript:
Ver original
  1. var palabras = "prueba para obtener primera letra",
  2.     resultado= palabras.concat(' ').replace(/([a-zA-Z]{0,} )/g, function(match){ return (match.trim()[0]);});
  3.    
  4. document.write(resultado);

<< me toco concatenarle un espacio al final.


Funcionamiento descrito:

- Separa las palabras mediante una expresion regular que dice: "letras terminadas en espacio deben tomarse como una unidad (palabra)"

- Por lo anterior, la ultima palabra no era separada ya que no habia espacio al terminar la cadena, asi que tuve que agregar o "concatenar" un espacio al final con concat(' ')

- Cada palabra es enviada a una funcion definida como segundo parametro de de replace()
(el primer parametro es la expresion regular)

- La funcion (anonima) recibe como parametro la palabra y le quita el espacio final con trim() para luego devolver (con return) solo el primer caracter o sea [0]

- Replace hace su trabajo y por cada palabra REEMPLAZA con el resultado de la funcion anonima que es el primer caracter y lo almacena en la variable resultado
__________________
Salu2!

Última edición por Italico76; 26/06/2014 a las 12:31

Etiquetas: cada, letra, palabra
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 21:57.