是否可以更改包含项目的对象中 parents/childs 的顺序?

Is it possible to change the order of parents/childs in an object with items?

我有一个看起来像这样的对象:

sum = {
  value:{ 
      a: 10,
      b: 11
  }
  value2:{ 
      a: 33,
      c: 12
  }
  ..
}

我的对象更复杂,字母确实包含具有不同值的对象,但关键是,我希望遍历每个值中存在的所有字母和 return 个对象,例如:

a:{
  value: 10,
  value2: 33
}

我可以遍历整个构建新对象的过程,但是有没有更有效的“翻转对象顺序”的方法?

我只想使用存在于所有值对象中的键,我目前是这样获取它们的,但这不是必需的。

value = ['value', 'value2']
tags.forEach( (tag) =>
    keys.push(Object.keys(sum[tag]))
)
matches = _.intersection.apply(_, keys);


matches.forEach( (match) => {
  ...
}

此解决方案重新组织了属性的顺序。

grouped[kk][k] = sum[k][kk] for all elements

var sum = {
        value: {
            a: 10,
            b: 11
        },
        value2: {
            a: 33,
            c: 12
        }
    },
    grouped = {};

Object.keys(sum).forEach(function (k) {
    Object.keys(sum[k]).forEach(function (kk) {
        grouped[kk] = grouped[kk] || {};
        grouped[kk][k] = sum[k][kk];
    });
});
document.write('<pre>' + JSON.stringify(grouped, 0, 4) + '</pre>');