问答

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

作者:admin 2021-09-10 我要评论

对象结构如图: //然后我用的办法如下代码: authTree.forEach((item1) = { if (item1.authId === authId) { item1.checked = checked; if (item1.children) { ite...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

对象结构如图:
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;
              }
            });
          }
        });
      }

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

###
function loop(tree) {
    tree.forEach(t => {
        if(t.authId === authId) {
            t.checked = checked;
            if(t.children && Array.isArray(t.children)) {
                loop(t.children);
            }
        }
    })
}

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 遍历对象里面的对象再继续遍历里面的对

    遍历对象里面的对象再继续遍历里面的对

  • Nuxt.js设置同一个路由地址根据设备类

    Nuxt.js设置同一个路由地址根据设备类

  • create-react-app 是否可以移除不需要

    create-react-app 是否可以移除不需要

  • React-native+Hooks+Typescript+Dva开

    React-native+Hooks+Typescript+Dva开

腾讯云代理商
海外云服务器