我有一个对象
var obj = {
prop1 : {
dummy1 : 0,
dummy2 : 0,
dummy3 : 0
},
prop2 : {
dummy1 : 0,
dummy2 : 0,
dummy3 : 0
}
};
我需要恢复它,以便 dummy 成为一个对象,然后 props 成为它的属性。
所以我需要我的对象看起来像这样
var obj = {
dummy1 : {
prop1 : 0,
prop2 : 0
},
dummy2 : {
prop1 : 0,
prop2 : 0
},
dummy3 : {
prop1 : 0,
prop2 : 0
}
};
最佳答案
这可以通过两个 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}
} */
您可能还想检查属性是否被继承等。
关于javascript - 还原对象及其属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17817773/