Tengo un comportamiento extraño (tal vez no es extraño en absoluto, pero no entiendo por qué) con una matriz de JavaScript que contiene algunos objetos.matriz de Javascript se convierte en una estructura de objeto
Como no soy javascript pro, podría haber una explicación clara de por qué sucede esto, simplemente no lo sé.
Tengo javascript que se ejecuta en un documento. Se hace una matriz de objetos similar a esto:
var myArray = [{"Id":"guid1","Name":"name1"},{"Id":"guid2","Name":"name2"},...];
Si imprimo esta matriz en el lugar que fue creado como JSON.stringify (myArray), que consiga lo que esperaba:
[{"Id":"guid1","Name":"name1"},{"Id":"guid2","Name":"name2"},...]
Sin embargo, si intento acceder a esta matriz desde un documento secundario a este documento (un documento en una ventana abierta por el primer documento), la matriz ya no es una matriz. al hacerlo JSON.stringify (parent.opener.myArray) en el documento niño tendrá como resultado lo siguiente:
{"0":{"Id":"guid1","Name":"name1"},"1":{"Id":"guid2","Name":"name2"},...}
Y esto no era lo que esperaba - me esperaba conseguir lo mismo que hice en el documento principal
¿Alguien me puede explicar por qué sucede esto y cómo solucionarlo para que la matriz siga siendo una matriz cuando se dirige desde una ventana/documento hijo?
PS. los objetos no se añaden a la matriz como se ha indicado anteriormente, se añaden como esto:
function objTemp()
{
this.Id = '';
this.Name = '';
};
var myArray = [];
var obj = new ObjTemp();
obj.Id = 'guid1';
obj.Name = 'name1';
myArray[myArray.length] = obj;
Si hay alguna diferencia.
Cualquier ayuda sería muy apreciada, tanto para la fijación de mi problema, sino también para comprender mejor lo que está pasando :)
No me puedo reproducir. ¿En qué navegador lo has probado? ¿Usaste una biblioteca JSON? – Bergi
Estoy probando en IE porque es un requisito. Personalmente, no escogería IE pero no depende de mí. Solo estoy usando json en este ejemplo para codificar mi alerta. No estoy usando ninguna biblioteca json para el código que produce el comportamiento. – Aidal
Hola, gracias por la aceptación. Me alegra saber que mi solución resultó útil. Happy coding :) + 1 para tu pregunta BTW. Aprendí de él, también –