3
respuestas

No me lee la función push

No entiendo porque me dice que Ingredientes.push no es una función. Adjunto mi código y la imagen donde me da error.

<meta charset="UTF-8">

<h1>Recetas de Armando</h1>

<script>

    function pregunta2(){
        return prompt (" Informe el ingrediente " + contador);
    }

    var ingredientes = [];
    var cantidad = parseInt(prompt("¿Cuántos ingredientes vas a añadir?"));
    var contador = 1;


    while( contador <= cantidad ) {

        var ingredientes = pregunta2();
        console.log(ingredientes);
        var encontrado = false;

        for(var posicion = 0; posicion < ingredientes.length; posicion++){
            if(ingredientes == ingredientes [posicion]){
                encontrado = true; 
            alert("Ingrediente repetido, ingrese otro diferente " + ingredientes);
            break;

            }
        }

        if (encontrado == false) {
            ingredientes.push(ingredientes);
            contador++;

        }
    }

    console.log(ingredientes);

</script>

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

3 respuestas

El problema es que has sobre-escrito el Array de ingredientes con una variable que no es array ... (es uno de los errores de los lenguajes que no son fuertemente tipados) pero son buenos en algunos objetivos que los otros no. La solución es nombrar diferente la variable en la que lees el ingrediente

como aca `

Recetas de Armando

`
<meta charset="UTF-8">

<h1>Recetas de Armando</h1>

<script>

    function pregunta2(){
        return prompt (" Informe el ingrediente " + contador);
    }

    var ingredientes = [];
    var cantidad = parseInt(prompt("¿Cuántos ingredientes vas a añadir?"));
    var contador = 1;


    while( contador <= cantidad ) {

        var ingrediente = pregunta2();
        console.log(ingrediente);
        var encontrado = false;

        for(var posicion = 0; posicion < ingredientes.length; posicion++){
            if(ingrediente == ingredientes [posicion]){
                encontrado = true; 
                alert("Ingrediente repetido, ingrese otro diferente " + ingredientes);
                break;
            }
        }

        if (encontrado == false) {
            ingredientes.push(ingrediente);            
            contador++;
        }
    }

    console.log(ingredientes);

</script>

Que tengas mucho éxito Arianna Rodríguez Aguilar , sigue persistiendo esperan muchas aventuras con el código y los datos sigue adelante