Stavo cercando di stringificare un oggetto tipo array che è stato dichiarato come oggetto array e ho trovato che JSON.stringify non stava elaborando correttamente un oggetto tipo array quando è definito come un oggetto array.Oggetto array JavaScript vs matrice come oggetti - Chiarimento
Vedi di seguito per maggiore chiarezza, ->jsFiddle
var simpleArray = []; //note that it is defined as Array Object
alert(typeof simpleArray); // returns object -> Array Object
simpleArray ['test1'] = 'test 1';
simpleArray ['test2'] = 'test 2';
alert(JSON.stringify(simpleArray)); //returns []
Ha funzionato bene e mi {"test1":"test 1","test2":"test 2"}
restituito quando ho cambiato
var simpleArray = [];
-var simpleArray = {};
.
Qualcuno può far luce o qualche riferimento dove posso leggere di più?
Edit:
Domanda: Quando typeof simpleArray = []
e simpleArray = {}
oggetto restituito, perché JSON.stringify non è stato in grado di tornare {"test1":"test 1","test2":"test 2"}
in entrambi i casi?
Capisco questa parte, quello che volevo sapere è il motivo per cui JSON.stringify non può essere elaborato se dichiarato come []. –
Grazie! Stavo cercando l'istanza. Stavo cercando di usare typeof che restituiva oggetto in entrambi i casi. –
Dato che ES 5 c'è anche 'Array.isArray (...)' (15.4.3.2) che al contrario è frame-safe. Può essere emulato. – PointedEars