在javascript中计算该对象是否有另一个对象?

时间:2012-07-04 11:03:13

标签: javascript javascript-objects

我的对象数据如下:

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(Grand Parent)有13(父),13有15(子)。类似地,11(父)有14,14有16。

使用hasOwnProperty或任何其他方法,任何人都可以给我计算关系,以便进一步使用它。

2 个答案:

答案 0 :(得分:1)

由于您没有处理有效的JSON结构,因此必须通过eval运行它:

var myObject = eval(object);

现在你有了一个有效的Javascript对象,你可以循环来获取每个孩子的数量或每个第一个孩子的总和等等。
请参阅有关how to get the length of an object的StackOverflow问题。提供有和没有jQuery的答案。

答案 1 :(得分:0)

您可以使用 eval 将其转换为对象:

var o = eval(object);

现在您可以使用for..in来迭代属性。您可以测试每个属性的值,如果它是一个对象,也可以对其进行操作, ad infinitum