2014-01-16 24 views
2

这里是我的对象有:删除一些财产水平

var jsonData = { 
    "a" : { 
     "0" : { 
      "b" : {}, 
      "c" : {}, 
      "d" : { 
       "0" : { 
        "e" : {}, 
        "f" : {}, 
        "g" : {} 
       } 
      } 
     } 
    } 
} 

我怎样才能去掉“0”,并把它这个样子?

var jsonData = { 
    "a" : { 
     "b" : {}, 
     "c" : {}, 
     "d" : { 
      "e" : {}, 
      "f" : {}, 
      "g" : {} 
     } 
    } 
} 
+3

我删除了JSON标签作为有在问题没有JSON。 –

+0

我使用JSON.stringify,但它不工作 –

+0

AldrenTerante,也许评论是愚蠢的,但你的问题也是愚蠢的。如果你想删除“0”,只需删除!制作另一个物体图案并将其删除。没有其他解决方案并尝试更有礼貌... –

回答

1

你必须建立一个递归函数:

var jsonData = { 
    "a" : { 
     "0" : { 
      "b" : {}, 
      "c" : {}, 
      "d" : { 
       "0" : { 
        "e" : {}, 
        "f" : {}, 
        "g" : {}, 
        "h" : 3 // added to be less trivial 
       } 
      } 
     } 
    } 
} 


function cloneWithout0(v){ 
    if (typeof v !== "object") return v; 
    var c = {}; 
    for (var k in v) { 
    if (k !== '0') c[k] = cloneWithout0(v[k]); 
    } 
    if (v['0']) { 
    for (var k in v['0']) { 
     if (k !== '0') c[k] = cloneWithout0(v['0'][k]); 
    } 
    } 
    return c; 
} 

console.log(cloneWithout0(jsonData));