Hintergrund: Die Datenstruktur der Schnittstelle ähnelt dieser. Die
vom Backend zurückgegebenen tatsächlichen Daten lauten wie folgt: Dies ist eine Struktur mit vier Ebenen, die gerendert werden muss, und die vierte Ebene muss nur den Namen jeder Ebene abrufen und die ID
der ersten Ebene.
// 处理渲染左侧菜单的渲染
const outinner = result.dbcFiles;
let allData = [];
for (let i in outinner) {
let str = Object.keys(outinner).toString();
var index1 = str.lastIndexOf('.');
var index2 = str.length;
if (index1 >= 1) {
str = str.substring(index1, index2);
}
// 如果得到的后缀命为arxml需要四层的渲染结构
if (str === '.arxml') {
let empty = true;
let i1Item = {
};
i1Item.name = i;
let i1List = [];
for (let j in outinner[i]) {
empty = false;
let i2Item = {
};
let i2List = [];
i1Item.dbcId = outinner[i].dbcId;
i2Item.name = j;
const temp = outinner[i][j] || {
};
if (temp.length > 0) {
temp.map((i3) => {
let i3Item = {
};
let i3List = [];
i3Item.name = i3.name;
i2List.push(i3Item);
const signal = i3.signals || [];
signal.map((i4) => {
let i4Item = {
};
i4Item.label = i4.name;
i4Item.value = i4.name;
i3List.push(i4Item);
});
i3Item.i3List = i3List;
});
i2Item.i2List = i2List;
i1List.push(i2Item);
}
}
if (!empty) {
i1Item.i1List = i1List;
allData.push(i1Item);
}
} else if (str === '.dbc') {
}
console.log(allData);