2012-07-04 73 views
-1

我的目標數據如下:計數那個對象在javascript中有另一個對象?

var object = '({10:{id:"10", v_title:"1", ' + 
       '13:{id:"13", v_title:"1.1", ' + 
       '15:{id:"15", v_title:"1.1.1 ", v_noofpara:"g2 ", v_description:"d1.1.1"}' + 
       '}'+ 
      '},'+ 
      '11:{id:"11", v_title:"2", ' + 
      '14:{id:"14", v_title:"2.1", ' + 
       '16:{id:"16", v_title:"2.1.1 ", v_noofpara:"g1 ", v_description:"des2.1.1 "}' + 
      '}' + 
      '}' + 
     '})' 

注意,鍵值10(祖父母)有13個(母)和13有15個(孩子)。同樣,11(父)有14和14有16個。

使用hasOwnProperty或任何其他方法可以讓任何人有關係的計數,以便進一步使用它。

+0

你試過了什麼?你沒有一個對象,你有一個JSON字符串。如果你想要遍歷它,你首先需要解析它。 – Utkanos

+1

這是一個字符串,它甚至不能被解析爲有效的JSON。你必須在其上運行'eval'。 – Esailija

+0

你可以舉一個你想要的輸出的例子嗎?我不明白你在問什麼。 – nnnnnn

回答

0

您可以使用EVAL將其轉換爲一個對象:

var o = eval(object); 

現在你可以使用for..in迭代的特性。你可以測試每個屬性的值,如果它是一個對象,也可以在其上執行,也可以無限制地使用

1

因爲你面對的不是一個有效的JSON結構,你必須通過eval運行它

var myObject = eval(object); 

現在你有一個有效的JavaScript對象,您可以遍歷讓每個孩子的數量或每個第一個孩子的總和等,如你所願。
請參閱此StackOverflow關於how to get the length of an object的問題。提供了有和沒有jQuery的答案。

相關問題