遍历对象里面的对象再继续遍历里面的对象有好办法抽取吗?

对象结构如图:
image.png

 //然后我用的办法如下代码: 
 authTree.forEach((item1) => {
      if (item1.authId === authId) {
        item1.checked = checked;
        if (item1.children) {
          item1.children.forEach((item2) => {
            item2.checked = checked;
            if (item2.children) {
              item2.children.forEach((item3) => {
                item3.checked = checked;
              });
            }
          });
        }
      } else {
        item1.children.forEach((item2) => {
          if (item2.authId === authId) {
            item2.checked = checked;
            if (item2.children) {
              item2.children.forEach((item3) => {
                item3.checked = checked;
              });
            }
          } else {
            item2.children.forEach((item3) => {
              if (item3.authId === authId) {
                item3.checked = checked;
              }
            });
          }
        });
      }

请问大家有没有好办法优化这个代码

阅读 1.8k
1 个回答
function loop(tree) {
    tree.forEach(t => {
        if(t.authId === authId) {
            t.checked = checked;
            if(t.children && Array.isArray(t.children)) {
                loop(t.children);
            }
        }
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题