是否可以更改包含项目的对象中 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>');
我有一个看起来像这样的对象:
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>');