Novato con javascript

¿Cómo estas David? Yo nuevamente molestando, esto haciendo el siguiente ejercicio:
Cargar un string por teclado e implementar los siguientes métodos:
a) Imprimir en pantalla la primera mitad del string
b) Imprimir el último carácter
c) Imprimir en forma inversa
d) Imprimir cada carácter del string separado por un guión
e) Imprimir la cantidad de vocales almacenadas
La función la hice de la siguiente manera:
function variosMetodos(){
var oracion = prompt('Ingrese cualquier frase u oracion','');
var oracionLength = (oracion.length / 2);
var i = 0;
document.write('La oracion que ingreso para el ejercicio es la siguiente: '+oracion);
document.write('<br>')
document.write('Respuesta del ejercicio a) ');
for(i=0; i <= oracionLength; i++){
document.write(oracion.charAt(i));
}
document.write('<br>'); //fin inciso a)
document.write('Respuesta ejercicio b) '+oracion.charAt(oracion.length - 1));
document.write('<br>'); //fin inciso b)
var oracionSplit = oracion.split(" ");
var oracionReverse = oracionSplit.reverse();
document.write('Respuesta del ejercicio c) '+oracionReverse);
document.write('<br>'); //fin inciso c)
var oracionSplit = oracion.split("");
var oracionJoin = oracionSplit.join("-");
document.write('Respuesta del ejercicio d) '+oracionJoin)
document.write('<br>'); //fin inciso d)
var vocalA = (oracion.indexOf("a"));
var restaVocal = (oracion.substring(vocalA+1));
document.write(vocalA + '<br>');
document.write(restaVocal+'<br>');
while(vocalA != -1){
if(vocal != 0)
var vocal = (oracion.indexOf("a"))
}
}
El problema lo tengo en el último inciso ya que no logro hacer el bucle para que regrese el nuevo valor de la oración para que haga nuevamente la búsqueda de la vocal, yo pensaba hacer este mismo procedimiento para las 5 vocales y después sumar los contadores.
Bueno, de antemano muchas gracias por tus consejos.
Te envía un cordial saludo desde Guatemala, Héctor

1 Respuesta

Respuesta
1
Yo te recomendaría algo como:
var vocales = new Array('a', 'e', 'i', 'o', 'u');
var totalVocales = 0;
var j;
for (i=0; i < vocales.length; i++) {
  j = -1;
  do {
    if ((j = oracion.indexOf(vocales, j+1)) > -1)  {
      totalVocales++;
    }
  }
  while (j > -1)
}


Saludos a Guatemala desde Barcelona, España.
David Cortés Braña
Muchas gracias David...pero al correr la funcion en la variable totalVocales sale 0
var vocales = new Array('a', 'e', 'i', 'o', 'u');
var totalVocales = 0;
var j;
for (i=0; i < vocales.length; i++) {
  j = -1;
  do {
    if ((j = oracion.indexOf(vocales, j+1)) > -1)  {
      totalVocales++;
    }
  }
  while (j > -1)
}
document.write('Respuesta del ejercicio e) '+totalVocales);
Yo te agradezco enormemente toda la colaboración que prestas, de verdad, pero es que no entiendo, Dios bendiga todas tus labores.
Saludos Hector
Lo que pasa es que este editor se comió el índice de vocales. Debería ser vocales[ i ] en la línea 8. Pero este editor parece que le da por poner cursiva cuando ve eso. A ver si ahora se ve bien:
var oracion = "tu oración";
var vocales = new Array('a', 'e', 'i', 'o', 'u');
var totalVocales = 0;
var j;
for (i=0; i < vocales.length; i++) {
j = -1;
do {
if ((j = oracion.indexOf(vocales, j+1)) > -1) {
totalVocales++;
}
}
while (j > -1)
}
document.write('Respuesta del ejercicio e) '+totalVocales);

Por cierto, si quieres que se cuenten las vocales acentuadas deberás incluirlas en el array de vocales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas