好的,所以我不明白这意味着什么,在Chrome控制台中我得到了这个:
现在为什么cat4属性是一个0元素的数组但是有属性cat5?这是我用JSON.stringify()得到的:
{
"cat0": [
{
"category": "cat0",
----...other properties here ...----
}
],
"cat4": [],
"cat7": []
}
答案 0 :(得分:3)
您可以将属性赋予数组,因为它是一个对象:
var a = [];
a.name = "value";
console.dir(a); // you see name:value when you open the tree
但是当JSON.stringify
将其序列化为JSON时,会忽略这些属性,因为数组的字符串化是特定的:specification会将数组作为元素序列在JSON中进行字符串化(见2.3)。 JSON.stringify
的实际实施现在取决于浏览器,但您可以在old Crockford's code中看到测试:
if (Object.prototype.toString.apply(value) === '[object Array]') {