87,996
社区成员
发帖
与我相关
我的任务
分享
var data1 = [{
field1: '111',
field2: '222',
field3: '333',
field4: [{
field5: '555',
field6: '666',
field7: '777'
},
{
field5: '5555',
field6: '6666',
field7: '7777'
}
],
field8: [{
field9: '999',
field10: '101010',
field11: '111111'
},
{
field9: '9999',
field10: '10101010',
field11: '11111111'
},
]
}]
function transformData(data) {
return data.map(function (item) {
var newItem = {};
for (var key in item) {
if (Array.isArray(item[key])) {
newItem[key] = '';
var arr = item[key];
var subItem = {};
for (var i = 0; i < arr.length; i++) {
var subArr = arr[i];
for (var subKey in subArr) {
if (!subItem[subKey]) {
subItem[subKey] = [];
}
subItem[subKey].push({
name: subArr[subKey]
});
}
}
for (var subKey in subItem) {
newItem[subKey] = subItem[subKey];
}
} else if (typeof item[key] === 'object') {
var subData = transformData([item[key]]);
for (var subKey in subData[0]) {
newItem[subKey] = subData[0][subKey];
}
} else {
newItem[key] = item[key];
}
}
return newItem;
});
}
console.log(JSON.stringify(transformData(data1)))