javascript - 还原对象及其属性

标签 javascript object

我有一个对象

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/

相关文章:

javascript - 访问采用无限动态滚动的网站元素

javascript - 使用push方法向对象添加条件

javascript - 如何在从 json 获取数据时在 React 上渲染 html 标签

javascript - 从稍微嵌套的数组中删除重复项后保留对象的所有键

javascript - 使用 href 或按钮运行灯光图库

c++ - 对单参数构造函数使用 explicit 关键字

javascript - 将平面对象数组转换为嵌套对象

javascript - 如何将对象数组中的对象作为逗号分隔对象列表传递给函数?

object - addEventListener 仅适用于最后一个对象

java - Ajax 调用中的未定义错误