Duda con arrays en javascript

Iniciado por jamatbar, 5 Octubre 2016, 23:46 PM

0 Miembros y 1 Visitante están viendo este tema.

jamatbar

Buenas, quiero un javascript que me pida "x" nombres y los liste luego, el problema es que no sé como crear un array de "x" posiciones, he probado de mil formas y no me sale. Os pongo el código a ver si me podéis ayudar.

Código (javascript) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ejercicio 7 string</title>
</head>
<body>
<script type="text/javascript">
var arraynombres=new array(10);
var nombre;
var contador=0;
do{

for(var i=0; i<arraynombres.length;i++){
nombre=prompt("Introduce el nombre");
arraynombres[i]= ""+nombre;
contador++;
if(nombre!="ultimo"){
document.write("Nombre: "+arraynombres[i]+ " y se han leído "+contador+" nombres <br>");
}
}
}
while(nombre!="ultimo");
</script>
</body>
</html>


Gracias de antemano y saludos.

engel lex

normalmente se declara el array vacio y lo rellenas numerando la posición

es decir


Código (javascript) [Seleccionar]
var contenedor = []
contenedor[0] = "hola"
contenedor[1] = "mundo"
//se insertan un numero indeterminado de elementos
contenedor[contenedor.length] = "colocando ultimo elemento"


esa ultima linea verá cual es el lago del array y lo usará como indice (sabemos que el largo es 1 mayor que el indice, asì que funciona para nosotros)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

jamatbar

Cita de: engel lex en  5 Octubre 2016, 23:51 PM
normalmente se declara el array vacio y lo rellenas numerando la posición

es decir


Código (javascript) [Seleccionar]
var contenedor = []
contenedor[0] = "hola"
contenedor[1] = "mundo"
//se insertan un numero indeterminado de elementos
contenedor[contenedor.length] = "colocando ultimo elemento"


esa ultima linea verá cual es el lago del array y lo usará como indice (sabemos que el largo es 1 mayor que el indice, asì que funciona para nosotros)

No sé como implementar eso a mi código, o no te entiendo muy bien lo que quieres decir

engel lex

en lugar de usar
var arraynombres=new array(10);
usas
var arraynombres = []

eso declarará un array vacio... luego llenas tanto como quieras...

si quieres que sea fijo de 10 posiciones (no estoy seguro si eso es lo que quieres)

usas
var arraynombres=new Array(10);

recuerda que el lenguaje es sensible a mayúsculas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

EFEX

Y usar .push() agregar nuevos elementos al array

Código (javascript) [Seleccionar]

arraynombres.push(nombre);


Existen mas funciones para lidiar con los array, fijate.

https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Array
GITHUB 

jamatbar

He intentado lo que me habéis dicho y ni me ejecuta:

Código (javascript) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ejercicio 7 string</title>
</head>
<body>
<script type="text/javascript">
var arraynombres=[]
var nombre;
var contador=0;
do{

for(var i=0; i<arraynombres.length;i++){
nombre=prompt("Introduce el nombre");
arraynombres.push(nombre);
contador++;
if(nombre!="ultimo"){
document.write("Nombre: "+arraynombres[i]+ " y se han leído "+contador+" nombres <br>");
}
}
}
while(nombre!="ultimo");
</script>
</body>
</html>

EFEX

Código (javascript) [Seleccionar]

arraynombres.length


arraynombres esta vacio, cuidado con los bucles tambien..
GITHUB