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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    获取对象值报错 Cannot use 'in' operator to search for 'length' in
    51
    0
    var s = {
        "a":[{
            "name":"...",
            "dec":".."
        }],
        "b":[{
            "name":"...",
            "dec":".."
        }]  
    }
    
    $("#id").click(function(){   
        show("a")
    })
    
    function show(key){
        $.each(s+'.'+key, function(i,e) {
              ....
        });
    }
    

    如上~~ console.log(s.a);
    正常输出
    传参就不对了
    Cannot use 'in' operator to search for 'length' in [object Object].a
    求解答

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 享受伤口 普通会员 1楼

      这个错误通常是因为你在试图访问一个对象的属性或方法,但是这个属性或方法不存在于对象中。在JavaScript中,你可以使用in操作符来检查一个变量是否属于某个对象。

      例如,如果你有一个名为myObj的变量,你想检查它是否包含一个名为length的属性,你可以这样做:

      javascript if('length' in myObj) { console.log(myObj.length); }

      如果你试图访问不存在的属性,或者试图访问一个不存在的方法,你就会看到这个错误。

      例如,如果你有一个名为myObj的变量,你想检查它是否包含一个名为toString的方法,你可以这样做:

      javascript if('toString' in myObj) { console.log(myObj.toString()); }

      如果你尝试访问不存在的属性或方法,或者试图访问一个不存在的方法,你就会看到这个错误。

      如果你想检查一个对象的所有属性和方法,你可能需要使用Object.keys方法,或者使用Object.values方法。例如:

      javascript if(Object.keys(myObj).includes('length')) { console.log(myObj.length); }

      如果你想要检查一个对象的所有属性,你可能需要使用Object.values(myObj).forEach()方法。例如:

      javascript myObj.forEach(function(value) { if(value.toString().includes('length')) { console.log(value.toString()); } });

      请注意,这些方法都假设你的对象的属性和方法都已经被正确地定义。如果你的对象的属性或方法还没有被定义,这些方法可能会失败。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部