2014-01-15 30 views
1

好了,我不明白這是什麼意思,在Chrome控制檯我得到這個:帶有屬性的Javascript數組?

enter image description here

現在爲什麼是CAT4財產0元素的數組,但有5類的屬性?以下是我與JSON.stringify():

{ 
    "cat0": [ 
     { 
      "category": "cat0", 
       ----...other properties here ...---- 
     } 
    ], 
    "cat4": [], 
    "cat7": [] 
} 
+0

可能陣列的原型已被修改 – njzk2

+0

@ njzk2否,或其他陣列將具有相同的屬性。一個屬性剛剛添加到該特定數組中(請參閱下面的答案)。 –

+0

@dystroy:所有這些數組似乎都有一個「categoryName」屬性,但確實沒有看到cat4數組中的cat5 – njzk2

回答

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]') {