2013-07-23 84 views
3

我有一個對象復歸對象及其屬性

var obj = { 
    prop1 : { 
     dummy1 : 0, 
     dummy2 : 0, 
     dummy3 : 0 
    }, 
    prop2 : { 
     dummy1 : 0, 
     dummy2 : 0, 
     dummy3 : 0 
    } 
}; 

,我需要恢復這種從而僞成爲一個對象和道具就變成了它的屬性。

所以我需要我的對象,看起來像這樣

var obj = { 
    dummy1 : { 
     prop1 : 0, 
     prop2 : 0 
    }, 
    dummy2 : { 
     prop1 : 0, 
     prop2 : 0 
    }, 
    dummy3 : { 
     prop1 : 0, 
     prop2 : 0 
    } 
}; 

回答

3

這是可以實現的兩個for..in循環

var obj = { 
     prop1 : {dummy1 : 0, dummy2 : 0, dummy3 : 0}, 
     prop2 : {dummy1 : 0, dummy2 : 0, dummy3 : 0} 
    }; 
// start of interesting code 
var a, b, 
    o2 = {}; 
for (a in obj) 
    for (b in obj[a]) { 
     if (!o2[b]) o2[b] = {}; // if o2 doesn't have this yet, make new obj 
     o2[b][a] = obj[a][b]; // swap 
    } 
o2; /* { 
    "dummy1": {"prop1": 0, "prop2": 0}, 
    "dummy2": {"prop1": 0, "prop2": 0}, 
    "dummy3": {"prop1": 0, "prop2": 0} 
} */ 

您可能還需要檢查屬性不可繼承等

+0

謝謝你完美的作品:) – madeye