Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Angeliyo en 13 de Mayo 2022, 07:48

Título: JavaScript JS declaración de arrays o arreglos estáticos con índice CU01121E
Publicado por: Angeliyo en 13 de Mayo 2022, 07:48
Hola, esta consulta es relativa al ejercicio CU01121E del taller de programación web desde cero con JavaScript de aprenderaprogramar.

Código: [Seleccionar]
var nombres = new Array();
nombres = prompt('introduce 3 nombres');
nombres [0]= "";
nombres [1]= "";
nombres [2]= "";

alert('Contenido de ejemplo: '+ nombres);

Mi duda es si este código está bien hecho. ¿Tambien podrá haber sido así?:

nombres = ["" ,"", ""].

Muchas gracias y muy amable.
Título: Re: Ejercicio del codigo CU01121E de Js,, arrays
Publicado por: Kabuto en 13 de Mayo 2022, 11:15
No, no es correcto.

Aquí declaras un array, esto está bien:
Código: [Seleccionar]
var nombres = new Array();
Pero aquí, al usar prompt(), ahora "var nombres" ha dejado de ser un array.
Código: [Seleccionar]
nombres = prompt('introduce 3 nombres');Ahora es un string, porque eso es lo que retorna la instrucción prompt().

Por estas cosas soy amante de los lenguajes fuertemente tipados je je.
JavaScript tiene un tipado débil y a la que te despistas, un array pasa a ser un string, un string pasa a ser un dato numérico, un numérico pasa a ser un objeto de clase....

Por otra parte, suponiendo que prompt() hubiera funcionado y te hubiera dado tres nombres para guardar en el array, esos nombres los estarías machacando en las siguientes líneas:
Código: [Seleccionar]
nombres [0] = "";
nombres [1]= "";
nombres [2]= "";
Aquí lo que estás haciendo es colocar cadenas vacías en las tres posiciones del arreglo, así que estarías borrando los nombres, si es que los hubieras conseguido.

Si queremos tres nombres, hay que usar tres prompt().
El string resultante de cada prompt(), lo colocaremos en distintas posiciones del array

Prueba este script:
Código: [Seleccionar]
<script>
var nombres = new Array();
alert('introduce 3 nombres a continuación');
nombres[0] = prompt("Nombre 1:");
nombres[1] = prompt("Nombre 2:");
nombres[2] = prompt("Nombre 3:");
alert("Nombres ingresados: " + nombres);
</script>