2014-01-16 25 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));