开发者问题收集

jquery 错误未捕获的类型错误:无法读取未定义的属性“length”

2016-08-27
552

我正在学习 JavaScript 教程。我必须显示数组的长度,但在调用时我收到上述错误。

var bio = {
"portfolio": [
    {
        "name": "Sambit Mishra",
        "role": "Frontend Web Developer",
        "contacts": {
            "mobile": "+91-8888888888",
            "email": "[email protected]"
        },
        "skills": ["Awesome ", "Frontend Design ", "Javascript ", "Python "],
        "message": "Have a great day ahead."
    }
]}
if(bio["skills"].length > 0) {
$("#header").append(HTMLskillsStart);

var formattedSkill = HTMLskills.replace("%data%", bio.skills[0]);
$("#skills").append(formattedSkill);
formattedSkill = HTMLskills.replace("%data%", bio.skills[1]);
$("#skills").append(formattedSkill);
formattedSkill = HTMLskills.replace("%data%", bio.skills[2]);
$("#skills").append(formattedSkill);
formattedSkill = HTMLskills.replace("%data%", bio.skills[3]);
$("#skills").append(formattedSkill);}

我在这里推断 bio["skills"] 的长度属性显示为未定义。我们将不胜感激。谢谢。

3个回答

您的路径错误。对象的第一代中没有属性 skills 。相反,路径似乎是:

bio.portfolio[0].skills

或者,如果您愿意

bio['portfolio'][0]['skills']
Mitya
2016-08-27

错误消息意味着 bio["skillls"] 不存在。我猜 bio.portfolio[0].skills.length 就是你想要的。 portfolio 是对象 bio 的一个属性,其值是一个数组。该数组的第一个元素是一个具有属性 skills 的对象。该属性的值是一个数组,因此具有长度。

mm759
2016-08-27

使用此 bio.portfolio[0]['skills'].lengthbio.portfolio[0].skills.length rathen 然后 bio["skills"]

Kumar Rakesh
2016-08-27