关于数组里包含对象,对象里面包含对象,而对象里不确定对象的不同属性时的判断

在其开发企业微信接口存在这么个数据展示

 let testData = [{
           // 可以包含property,当然也可以包含config或者不包含或者多个情况
            property: {
               control: 'Contact',
               id: 'Contact-1585125229216',
               title: [{
                  text: '签单人员',
                  lang: 'zh_CN'
               }],
               placeholder: [{
                  text: '',
                  lang: 'zh_CN'
               }],
               require: 1,
               un_print: 1
            },
            config: {
            // 这里面也可以是其他属性 也不同属性
               contact: {
                  type: 'single',
                  mode: 'department'
               }
            }
         },
         {
            property: {
               control: 'Contact',
               id: 'Contact-1585125246163',
               title: [{
                  text: '签单部门',
                  lang: 'zh_CN'
               }],
               placeholder: [{
                  text: '',
                  lang: 'zh_CN'
               }],
               require: 1,
               un_print: 1
            }
         }
      ]
       for (const item of testData) {
         console.log(item.config.contact.mode); // 这样会取不到值会报错
         // 原因是在其循环时,当某个对象不存在item.config.contact===undefined 
         // 再去调用 item.config.contact.mode就会报错
         // 所以需要加上一个判断
         if(item.config){
            // 如果嵌套多层有些对象属性有有些对象属性没有 则也需要判断
            if(item.config.contact){
               console.log(item.config.contact.mode) // 即可拿到值再做处理
            }
         }
      }

问题不大,细节很重要

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值