JavaScript - Ayuda con un snippet de código que no entiendo

 
Vista:
sin imagen de perfil
Val: 13
Ha disminuido su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda con un snippet de código que no entiendo

Publicado por Jan (7 intervenciones) el 22/10/2018 19:02:29
Estoy realizando unos ejercicios relacionados con arrays. El profesor a escrito este snippet de código:
1
2
3
4
5
6
7
/* La variable "elementos" recibe la array */
function mostrarArray(elementos, textoCustom = "") {
  document.write("<h1>Os presentamos el contenido de la array "+textoCustom+"<h1>");
  miarray.forEach((elemento, indice)=>{
  document.write("<strong>"+elemento+"</strong><br/>");
});
}

Como podeis ver en el comentario, la variable "elementos" recibe una array. Lo que no entiendo es porque es eso necesario si despues ya especificamos la array que queremos mostrar cuando utilizamos el método miarray.forEach


Gracias comunidad y espero que alguien me pueda aclarar este problema.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abzer0x
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda con un snippet de código que no entiendo

Publicado por abzer0x (130 intervenciones) el 22/10/2018 22:50:52
Hola, por lo que veo en el código la variable myarray no esta definida por ningún sitio, a menos que esta sea una variable global, en dicho caso no veo sentido el uso del parámetro elementos. De lo contrario si la variable no esta definida el código anterior generara un error indicando que myarray no esta definida. Y la ultima opción es que se halla equivocado y en lugar de poner elementos puso myarray.

Tal vez el código sea así:
1
2
3
4
5
6
7
/* La variable "elementos" recibe la array */
function mostrarArray(elementos, textoCustom = "") {
  document.write("<h1>Os presentamos el contenido de la array "+textoCustom+"<h1>");
  elementos.forEach((elemento, indice)=>{
  document.write("<strong>"+elemento+"</strong><br/>");
});
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 13
Ha disminuido su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda con un snippet de código que no entiendo

Publicado por Jan (7 intervenciones) el 22/10/2018 22:53:04
Hola abzer0x.
Te adjunto el código completo del ejercicio:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
'use strict'
 
/*
  1- Pedir 6 numeros por pantalla y meterlos en una array
  2- Mostrar el array entero (todos sus elementos) en el cupero de la pagina y en consola
  3- Ordenarlo y mostrarlo
  4- Invertir su orden y mostrarlo
  5- Mostrar cuantos elementos tiene la array
  6- Busqueda de un valor introducido por el usuario, que nos diga si lo encuentra y si es asi su indice
  (Se valora el uso de funciones)

*/
 
/* La variable "elementos" recibe la array nose la utilidad */
function mostrarArray(elementos, textoCustom = "") {
  document.write("<h1>Os presentamos el contenido de la array "+textoCustom+"<h1>");
  numeros.forEach((elemento, indice)=>{
  document.write("<strong>"+elemento+"</strong><br/>");
});
}
 
// Apartado 1
var numeros = new Array(6);
    numeros = [];
 
for(var i = 0; i <=5; i++) {
  numeros.push(parseInt(prompt("Introduce un numero")));
}
 
// Apartado 2
 
mostrarArray(numeros);
console.log(numeros);
 
// Apartado 3 
 
numeros.sort((a,b)=>{return a-b;});
mostrarArray(numeros, "ordenado");

Aqui sabes para que puede servir?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de abzer0x
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda con un snippet de código que no entiendo

Publicado por abzer0x (130 intervenciones) el 22/10/2018 23:35:12
Es más o menos como te comentaba, en este caso el array se llama numeros por lo que al estar por fuera de la función y ser este una variable global puedes utilizarlo dentro de la función. Ahora bien cuanto llamas a función mostrarArray y le pasas el array números como argumento lo que sea aquí es un paso de la variable por valor, es decir, que el contenido de dicha variable se copia en la variable elementos
Por lo que el código en realidad debería ser así:
1
2
3
4
5
6
function mostrarArray(elementos, textoCustom = "") {
  document.write("<h1>Os presentamos el contenido de la array "+textoCustom+"<h1>");
  elementos.forEach((elemento, indice)=>{
  document.write("<strong>"+elemento+"</strong><br/>");
});
}

De otra forma si deseas usar la variable global numeros no seria necesario tener el parametro elementos

1
2
3
4
5
6
function mostrarArray(textoCustom = "") {
  document.write("<h1>Os presentamos el contenido de la array "+textoCustom+"<h1>");
  numeros.forEach((elemento, indice)=>{
  document.write("<strong>"+elemento+"</strong><br/>");
});
}

la función la llamarías simplemente así
1
mostrarArray('Aquí el texto de la variable textoCustom');

Debes tener mucho cuidado usar variables globales dentro de una función, en este caso no hay problema en su uso ya que solo se utiliza para leer el contenido de la variable, pero imagínate que modificas el valor de la variable números dentro de la función, esto generaría luego problemas o resultados inesperados.

Otra observación constructiva en cuanto al código es que estas definiendo la variable numeros dos veces, la primero usando en constructor Array y la segunda de forma literal []. En lo personal te recomiendo el uso de esta ultima ya que una de sus ventajas es que más rápida como se puede observar en este test.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 13
Ha disminuido su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda con un snippet de código que no entiendo

Publicado por Jan (7 intervenciones) el 23/10/2018 17:10:51
No tenia ni idea que poner la array var numero = [] fuera más rapido en JavaScript y lo de las variables globales utilizadas dentro de la función.
Estaba muy frustrado porque no le veia la función al parámetro de la función, ahora como has dicho efectivamente se puede sacar el elementos.

Muchas gracias (;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar