账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    嵌套数组对象 find() 方法怎么循环使用
    • 2019-07-04 00:00
    • 11
    42
    0

    根据1个数组 比如 array[01,0110,011221] 数组的长度可能是1,2,3,4。根据这个查找数组对象对应的其他属性的值。

    const materialsType = [{
     value: '01', 
     label: 2,
     children:[{
        value: '0110,
        label: 2,
        }],
    },{
        value: '02', 
        label: 0
    },{
        value: '03',
        label: 5
    }];

    下面是自己写的。运行没有问题。 但是如果数组长度很长的很麻烦,如果想做成循环的,封装成一个函数的话,该如何修改。

     render: text => {
            let array;
            if (text.constructor === String) {
              array = text.split(",");
            } else {
              array = text;
            }
           
            const output0 = materialsType.find((item)=>{
              return item.value === array[0]
            });
    
            let output1;
            if (array[1] !== undefined) {
              output1 = output0.children.find((item)=>{
                return item.value === array[1]
              })
              
              let output2;
              if (array[2] !== undefined) {
                output2 = output1.children.find((item)=>{
                  return item.value === array[2]
                })
                let output3;
                if (array[3] !== undefined) {
                  output3 = output2.children.find((item)=>{
                    return item.value === array[3]
                  })
                  return `${output0.label}/${output1.label}/${output2.label}/${output3.label}`;
                }
                return `${output0.label}/${output1.label}/${output2.label}`;
              }
              return `${output0.label}/${output1.label}`;
            }               
            return output0.label;
            }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部