[英]Change structure of object JavaScript
我有对象
const obj1 = {
app: {groups: [{name: 'test},{name: 'test2'}],
ap2: {groups: [{name: 'test1'},{name: 'test3'}],
}
如何更改为:
const obj1 = {
groups: [{name: 'test, type: 'app'},{name: 'test2', type: 'app'}, {name: 'test1, type: 'app2'},{name: 'test33', type: 'app2'}],
}
假设原始代码中有错别字,您可以执行以下操作:
const obj1 = {
app: {groups: [{name: 'test'},{name: 'test2'}]},
app2: {groups: [{name: 'test1'},{name: 'test3'}]},
}
const obj2 = {
groups: Object.entries(obj1).flatMap(([type, {groups}]) =>
groups.map( ({name}) => ({name, type}) )
)
}
console.log(obj2);
不优雅,但可读;
const obj1 = { app: { groups: [ {name: 'test'}, {name: 'test2'} ] }, ap2: { groups: [ {name: 'test1'}, {name: 'test3'} ], } } const obj2 = {}; obj2.groups = []; Object.keys(obj1).forEach( function(element) { obj1[element]['groups'].forEach( function(e) { var temp = {}; temp.name = e.name; temp.type = element; obj2.groups.push(temp) }); }); console.log(obj2);
var midObj = {name: '', type: ''};
var obj = {groups: []};
for(var I in obj1) {
for(var j=0; j<obj1[I]['groups'].length; j++) {
midObj = {};
midObj.type = I;
midObj.name = obj1[I]['groups'][j].name;
obj['groups'].push(midObj);
}
}
假设:源对象只定义为:const obj1 = { app: {groups: [{name: 'test},{name: 'test2'}], ap2: {groups: [{name: 'test1'},{名称:'test3'}],}
该解决方案仅适用于提到的源对象。 为了进行相同的操作,但对于另一个源对象,它需要更改循环及其内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.