如何检查文字中的属性是否未定义

How to check if a property inside a literal is undefined?

本文关键字:属性 是否 未定义 文字 何检查 检查      更新时间:2023-09-26

我有一个对象叫at.sports.

我的对象包含两个字段:sporttype - string和team,这是一个数组…或其他对象

就像这样:

at.sports = {
    sporttype : "Soccer"
    team : [
               { name : "bayern FC",
                 caption: "FCB"
               }
           ]
    }

如果我检查visual studio中的结构,我得到:

 at.sports = {
    proto: {},
    sporttype: "Soccert"
    team: object Object
}

如果我点击team..我看到

0 - name - "arsenal", title - "Asnl"1 -名称-"拜仁FC",标题-"FCB"我想进入团队属性…检查每个索引(0,1)的标题,看看是否设置。如果标题未定义…我想用name的值替换它,然后首字母大写。

ex:对于索引0,如果我只有name ="arsenal"和标题未设置,我需要标题变成"arsenal",然后首字母大写。所以在结尾字幕= "Arsenal"

我真的不知道如何…让我的手在正确的属性和修改。

我很好奇…球队财产…是对象还是数组?我认为它是一个对象,因为在Visual studio中,当我点击at时,我得到一个对象。设想…

哦. .相信我,我在谷歌上查过了。我只是不明白如何从at.sports内部获取我需要的东西。

在我访问我需要的东西之后,我看到有一个大写的方法。用其他值改变属性值是很容易的。for语句出现错误

我试过了:

       for (var i = at.sports.length; i--;) {
            if (typeof at.sports.team[i] === "undefined") {
                alert("something is undefined");
            }
       }

我得到了2次警报。我有两个索引。所以. .我把问题想错了。

Sports不是一个数组,正如对象定义所暗示的那样,那么这就是你需要的:

var teamArray = at.sports.team;
for(var i = 0; i < teamArray.length; i++) {
    if(teamArray[i].name != null && teamArray[i].caption == null) {
        var n = teamArray[i].name;
        teamArray[i].caption = n[0].toUpperCase() + n.substring(1);
    }
}

如果它是一个数组,如您的代码示例所示,则如下:

for(var i = 0; i < at.sports.length; i++) {
    var teamArray = at.sports[i].team;
    for(var j = 0; j < teamArray.length; j++) {
        if(teamArray[j].name != null && teamArray[j].caption == null) {
            var n = teamArray[j].name;
            teamArray[j].caption = n[0].toUpperCase() + n.substring(1);
        }
    }
}
在未来,我会更好地组织问题和信息。此外,正如对你的问题的评论所建议的那样,我会花一些时间阅读JavaScript。