Я пытался преобразовать в строку объект, подобный массиву, который был объявлен как объект массива, и обнаружил, что JSON.stringify некорректно обрабатывает подобный массиву объект, когда он определен как объект массива.
См. Ниже для большей ясности -> 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 []
Он работал нормально и вернул мне {"test1": "test 1", "test2": "test 2"}
когда я изменил
var simpleArray = [];
на var simpleArray = {};
.
Может ли кто-нибудь пролить свет или какую-нибудь ссылку, где я могу прочитать больше?
Редактировать:
Вопрос: Когда typeof simpleArray = []
и simpleArray = {}
возвращал объект, почему JSON.stringify не смог вернуть { "test1": "test 1", "test2": "test 2"}
в обоих случаях?