Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 3 Enero 2021, 22:32 pm



Título: [Pregunta]: Definir un arreglo vacío (javascript).
Publicado por: Leguim en 3 Enero 2021, 22:32 pm
Hola,

¿Cómo podría definir un arreglo vacío?
Me explico...

Código
  1. var formdata = new FormData();
  2. var my_array = []; // esto es un arreglo vacío, si por consola imprimimos este dato nos va a devolver: []
  3.  
  4. for(var i = 0; i < my_array.length; i++)
  5. {
  6.      formdata.append('my_array[]', my_array[i]);
  7. }


Como el tamaño del arreglo es 0 porque está vacío, no va a entrar en ninguna interacción y no va a agregar dicho arreglo.

Intenté con algunas otras maneras pero siempre me termina agregando un dato vacío.. "" cuando lo llamo con formdata.get('my_array[]'); y lo que yo quiero que devuelva sea: [] que significa arreglo vacío.


Mod: Sacados los comentarios a texto para mejor lectura.


Título: Re: [Pregunta]: Definir un arreglo vacío (javascript).
Publicado por: #!drvy en 4 Enero 2021, 00:14 am
Con ese código que tienes, formdata.get('my_array[]') va a devolver un null, por lo tanto te está indicando que no hay contenido para ese key.

Esto es un comportamiento esperado pues tal es su especificación:

https://developer.mozilla.org/en-US/docs/Web/API/FormData/get
A FormDataEntryValue containing the value. If the key doesn't exist, the method returns null.

Sospecho que tu problema es en otro frente que no nos muestras. ¿Donde te retorna un ""?


Saludos


Título: Re: [Pregunta]: Definir un arreglo vacío (javascript).
Publicado por: @XSStringManolo en 4 Enero 2021, 05:25 am
Que se supone que quieres saberbo hacer?

El titulo de tu pregunta es como declarar un array vacio y ya lo estás haciendo.

En tu código tienes un bucle de 0 al tamaño del array vacio, que también es 0. Asique tu bucle hace 0 iteraciones, o lo que es lo mismo, no hace nada.

Aunque iterases una vez el bucle, estás haciendo append de un elemento de una array que no tiene elementos. El array no tiene dentro []. No tiene nada dentro. [] Es para delimitar los elementos que pertenecen al array.
var myArray = [1, 3];

Pregunta algo concreto o muestra el problema que quieres resolver.


Título: Re: [Pregunta]: Definir un arreglo vacío (javascript).
Publicado por: MinusFour en 4 Enero 2021, 14:38 pm
Sospecho que tu problema es en otro frente que no nos muestras. ¿Donde te retorna un ""?


Saludos

Yo creo que su problema está mal ejemplificado.

Código
  1. let fm = new FormData();
  2. fm.append('arr', []);
  3. console.log(fm.get('arr') === ''); //true

Es lo que probablemente este haciendo.

FormData serializa la información con String. Si tuvieras ['perro', 'gato', 'caballo'], el objeto agregaría 'perro, gato, caballo'.

No puedes almacenar objetos dentro de FormData sin que tu serializes/deserializes en cada llamada con JSON y JSON tiene sus limitaciones.

Encima, FormData no fue pensado para esto.