Hola,
¿Cómo podría definir un arreglo vacío?
Me explico...
var formdata = new FormData();
var my_array = []; // esto es un arreglo vacío, si por consola imprimimos este dato nos va a devolver: []
for(var i = 0; i < my_array.length; i++)
{
formdata.append('my_array[]', my_array[i]);
}
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.
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
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.
Cita de: #!drvy en 4 Enero 2021, 00:14 AM
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.
let fm = new FormData();
fm.append('arr', []);
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.