好的,所以我不明白这是什么意思,在 chrome 控制台中我得到了这个:
现在为什么 cat4 属性是 0 元素的数组但具有属性 cat5 ?这是我用 JSON.stringify() 得到的:
{
"cat0": [
{
"category": "cat0",
----...other properties here ...----
}
],
"cat4": [],
"cat7": []
}
最佳答案
你可以给数组一个属性,因为它是一个对象:
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]') {
关于具有属性的 Javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139298/