项目中遇到Cannot read property 'length' of null

最近在做一个动态路由的项目,需要有三层嵌套循环去改变后台传过来的数据字段以及其他操作,比如给component值加".index"等.

遍历第三层时,报错 Cannot read property 'length' of null

然后苦思冥想,发现是因为第三层的只有下标为3的字段是不为空的,其他下标的字段都为空.所以没有遍历到就报错没有读取到length

后台返回的数据如下,permission被我定义成了router

{
  "code": 0,
  "message": "success",
  "content": {
    "realName": "admin",
    "userId": "6347e29a21a242d68331c8663ab6b236",
    "permissions": [
      {
        "id": "1",
        "url": null,
        "remark": null,
        "parentId": "0",
        "isMenu": 1,
        "name": "用户及权限设置",
        "status": 1,
        "icon": "cc-visa",
        "sort": 1,
        "sysPermissions": [
          {
            "id": "4",
            "url": "/abc/edf",
            "remark": null,
            "parentId": "1",
            "isMenu": 2,
            "name": "用户管理",
            "status": 1,
            "icon": null,
            "sort": 1,
            "sysPermissions": null
          },
          {
            "id": "5",
            "url": "/abc/bcd",
            "remark": null,
            "parentId": "1",
            "isMenu": 2,
            "name": "权限管理",
            "status": 1,
            "icon": null,
            "sort": 2,
            "sysPermissions": null
          }
        ]
      },
      {
        "id": "2",
        "url": null,
        "remark": null,
        "parentId": "0",
        "isMenu": 1,
        "name": "流程*积分*阀值设置",
        "status": 1,
        "icon": "credit-card",
        "sort": 2,
        "sysPermissions": [
          {
            "id": "6",
            "url": "/abc/def",
            "remark": null,
            "parentId": "2",
            "isMenu": 2,
            "name": "流程设置",
            "status": 1,
            "icon": null,
            "sort": 1,
            "sysPermissions": null
          },
          {
            "id": "7",
            "url": "/abc/asda",
            "remark": null,
            "parentId": "2",
            "isMenu": 2,
            "name": "积分设置",
            "status": 1,
            "icon": null,
            "sort": 2,
            "sysPermissions": null
          },
          {
            "id": "8",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "2",
            "isMenu": 2,
            "name": "阀值设置",
            "status": 1,
            "icon": null,
            "sort": 3,
            "sysPermissions": null
          }
        ]
      },
      {
        "id": "3",
        "url": null,
        "remark": null,
        "parentId": "0",
        "isMenu": 1,
        "name": "重点账户分组管理",
        "status": 1,
        "icon": "exclamation-triangle",
        "sort": 3,
        "sysPermissions": [
          {
            "id": "12",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "3",
            "isMenu": 2,
            "name": "重点账户分组管理",
            "status": 1,
            "icon": null,
            "sort": 1,
            "sysPermissions": null
          }
        ]
      },
      {
        "id": "9",
        "url": null,
        "remark": null,
        "parentId": "0",
        "isMenu": 1,
        "name": "账户实名监控",
        "status": 1,
        "icon": "credit-card",
        "sort": 4,
        "sysPermissions": [
          {
            "id": "13",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "9",
            "isMenu": 2,
            "name": "账户异常监控",
            "status": 1,
            "icon": null,
            "sort": 1,
            "sysPermissions": [
              {
                "id": "19",
                "url": "dwqdw/dwa",
                "remark": null,
                "parentId": "13",
                "isMenu": 3,
                "name": "频繁修改密码",
                "status": 1,
                "icon": null,
                "sort": 1,
                "sysPermissions": null
              },
              {
                "id": "20",
                "url": "ads/caw",
                "remark": null,
                "parentId": "13",
                "isMenu": 3,
                "name": "密码修改前后资金划转异常",
                "status": 1,
                "icon": null,
                "sort": 2,
                "sysPermissions": null
              }
            ]
          },
          {
            "id": "14",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "9",
            "isMenu": 2,
            "name": "资金交易异常监控",
            "status": 1,
            "icon": null,
            "sort": 2,
            "sysPermissions": [
              {
                "id": "21",
                "url": "dwdwq/dwa",
                "remark": null,
                "parentId": "14",
                "isMenu": 3,
                "name": "单账户多股票交易",
                "status": 1,
                "icon": null,
                "sort": 1,
                "sysPermissions": null
              },
              {
                "id": "22",
                "url": "dad/wdaw",
                "remark": null,
                "parentId": "14",
                "isMenu": 3,
                "name": "单账户成交次数",
                "status": 1,
                "icon": null,
                "sort": 2,
                "sysPermissions": null
              }
            ]
          },
          {
            "id": "15",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "9",
            "isMenu": 2,
            "name": "中登违法账户监控",
            "status": 1,
            "icon": null,
            "sort": 3,
            "sysPermissions": [
              {
                "id": "23",
                "url": "ae/adwa",
                "remark": null,
                "parentId": "15",
                "isMenu": 3,
                "name": "限制新开账户监控",
                "status": 1,
                "icon": null,
                "sort": 1,
                "sysPermissions": null
              }
            ]
          }
        ]
      },
      {
        "id": "10",
        "url": null,
        "remark": null,
        "parentId": "0",
        "isMenu": 1,
        "name": "异常账户核查反馈",
        "status": 1,
        "icon": "credit-card",
        "sort": 5,
        "sysPermissions": [
          {
            "id": "16",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "10",
            "isMenu": 2,
            "name": "监控触发情况",
            "status": 1,
            "icon": null,
            "sort": 1,
            "sysPermissions": null
          },
          {
            "id": "17",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "10",
            "isMenu": 2,
            "name": "核查双向通道",
            "status": 1,
            "icon": null,
            "sort": 2,
            "sysPermissions": null
          }
        ]
      },
      {
        "id": "11",
        "url": null,
        "remark": null,
        "parentId": "0",
        "isMenu": 1,
        "name": "查询统计",
        "status": 1,
        "icon": "credit-card",
        "sort": 6,
        "sysPermissions": [
          {
            "id": "18",
            "url": "dwa/asda",
            "remark": null,
            "parentId": "11",
            "isMenu": 2,
            "name": "统计明细",
            "status": 1,
            "icon": null,
            "sort": 1,
            "sysPermissions": null
          }
        ]
      }
    ]
  }
}

数据处理如下

然后就报错 errTypeError: Cannot read property 'length' of null

后来我意识到肯定是因为有些字段是空的,不为数组

看了看后台的数据格式.发现只有下标为3的那个sysPermission是数组,并且有子数据

我就无脑地吧j改成了3,然而报错 errTypeError: Cannot read property 'sysPermissions' of undefined

那是必须的啊,因为这样写代表着sysPermissions下的第4个子sysPermissions,但每个母sysPermissions下面只有一个子sysPermissions,所以找不到是正常的

后来把i改为3以后,解决该问题

成功!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值