我正在尝试将数组对象声明为数组对象,并发现JSON.stringify未正确处理数组类对象时,它被定义为数组对象。Javascript数组对象与数组像对象 - 澄清
,请参阅下文更加清晰, - >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"}
?
我明白那部分,我想知道的是为什么JSON.stringify在声明为[]时无法处理。 – 2012-02-07 21:46:29
谢谢!我正在寻找instanceof。我正在尝试使用typeof,它在两种情况下都返回对象。 – 2012-02-07 21:53:12
由于ES 5还有'Array.isArray(...)'(15.4.3.2),相反,它是框架安全的。它可以被模拟。 – PointedEars 2012-02-07 22:14:14