Próbowałem splajtować obiekt podobny do tablicy, który został zadeklarowany jako obiekt tablicy i okazało się, że JSON.stringify nie przetwarzał poprawnie obiektu podobnego do tablicy, gdy jest zdefiniowany jako obiekt tablicy.JavaScript Array Object vs Array Like Objects - Clarification
Poniżej większej jasności, ->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 []
to działało dobrze i wrócił do mnie {"test1":"test 1","test2":"test 2"}
kiedy zmienił
var simpleArray = [];
do var simpleArray = {};
.
Czy ktoś może rzucić trochę światła lub jakieś odniesienie, gdzie mogę przeczytać więcej?
Edit:
Pytanie: Kiedy typeof simpleArray = []
i simpleArray = {}
zwrócony obiekt, dlaczego JSON.stringify nie był w stanie wrócić {"test1":"test 1","test2":"test 2"}
w obu przypadkach?
Rozumiem tę część, co chciałem wiedzieć, dlaczego JSON.stringify nie może przetwarzać, gdy zostanie zadeklarowany jako []. –
Dziękujemy !. Szukałem instanceof. Próbowałem użyć typeof, który zwracał obiekt w obu przypadkach. –
Od wersji ES 5 jest także 'Array.isArray (...)' (15.4.3.2), która z kolei jest bezpieczna dla ramki. Można go emulować. – PointedEars