在使用vue做项目的过程中,应用element-ui组件的tree组件可以通过设置node-key属性通过数据key值绑定节点,可以传入默认的key值构成的数组使其默认被选中。固定展开多少层可以用递归的方式编写程序求解。
function getKeysFromTreeByLayer (tree, keys, layer = 1) {
if (!Array.isArray(keys)) return;
if (tree?.length === 0 || layer <= 0) return;
tree.forEach(item => {
keys.push(item.id);
if (layer - 1 > 0 && item?.children?.length !== 0) {
getKeysFromTreeByLayer(item.children, keys, layer - 1);
}
});
};
let keys = []
let tree = [{id:1,children:[{id:11,children:[{id:111},{id:112}]},{id:12,children:[{id:121},{id:122}]}]}]
getKeysFromTreeByLayer(tree, keys, 2)
console.log(keys);