使用JS控制树默认展开n层

96 阅读1分钟

在使用vue做项目的过程中,应用element-ui组件的tree组件可以通过设置node-key属性通过数据key值绑定节点,可以传入默认的key值构成的数组使其默认被选中。固定展开多少层可以用递归的方式编写程序求解。

function getKeysFromTreeByLayer (tree, keys, layer = 1) {  
  if (!Array.isArray(keys)) return;  
  if (tree?.length === 0 || layer <= 0return;  
  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);