function transformData(data) {
if (!data || data.length === 0) {
return []; // 如果数据为空,则返回空数组作为终止条件
}
return data.map(item => {
const children = item.children || [];
const hasChildren = children.length > 0;
const result = {
value: item.id,
label: item.name
};
if (hasChildren) {
result.children = transformData(children);
}
return result;
});
}
先上代码!!!
当级联选择器的某一层级的 children
数据为空时,可以不返回 children
属性。这可以通过在代码中进行判断来实现。
在上述代码中,我们首先判断当前节点的 children
数组是否为空,如果为空,则设置变量 hasChildren
为 false
。
然后,我们创建一个新的转换后的对象,并根据原始数据中的属性值设置 value
和 label
属性。注意,这里不会在对象中添加 children
属性。
最后,如果当前节点有子节点(即 hasChildren
为 true
),则递归调用 transformData
函数,并传入子节点数组 children
作为参数。在转换子节点的数据时,会自动添加 children
属性,从而构建出符合 Element UI 级联选择器要求的数据格式。
通过动态设置对象的属性,我们可以根据子节点是否为空来决定是否添加 children
属性,从而避免将空的 children
数组添加到转换后的对象中。