缺少对象时的未定义输出

时间:2017-09-20 17:20:56

标签: javascript

我会尽力提出这个问题,因为我缺乏了解我正在寻找能够搜索它的知识,因为我不能使用JavaScript。我知道为什么会这样,我只是不确定如何使用JavaScript来解决它。

我正在解析并循环API响应中的JSON文件。有时,如果标题可以是任何文本,则下面片段中的对象NWSHeadline将包含在文件中,如果没有任何要显示的文本,则可以从文件中一起删除NWSheadline对象。

 "parameters": {
                    "NWSheadline": [
                        "TEXT VALUE FOR NWSHEADLINE"
                    ],

为了简洁起见,我只发布了与我的问题相关的上述代码段。在我的循环中,我有以下行为对象NWSheadline创建var

var NWSheadline = entry.properties.parameters.NWSheadline;

所以当我把它放在我的HTML中时......

<div class="alerts-description-popover"><p>' + NWSheadline + '</p>

如果文件中存在NWSHeadline对象,它将从JSON文件输出该对象NWSheadline的值,该文件可以是句子形式的任何文本。如果JSON文件中没有NWSheadline对象,我只剩下未定义的输出,因为NWSheadline是在我的HTML中声明但在JSON文件中不存在。所以我知道为什么现在正在尝试解决它。​​

所以我的问题是如何抑制它在Javascript中显示Undefined,这样如果JSON中没有NWSHeadline,它将显示什么,而不是Undefined?

现在在PHP中我更熟悉我做这样的事情。

$NWSheadline = $currFeature['properties']['parameters']['NWSheadline'][0] ?? null;

在NWSheadline不存在时,JavaScript中是否有类似的结果或其他一些防止未定义的方法?

1 个答案:

答案 0 :(得分:2)

是的!您可以使用&#34;或&#34; ||运营商。 你可以这样做:

var NWSheadline = entry.properties.parameters.NWSheadline || "default value";

相当于你的php行;

编辑:

看看这个块也熟悉这个操作符:

var has_some_value = "some value!";
var has_undefined;

console.log(has_some_value || "default")
console.log(has_undefined || "default")

你可以看到结果:

> some value!
> default

现在,让我们看看你的情况,你可以测试只是在控制台粘贴:

var entry = {
    "properties": {
        "parameters": {
            "NWSheadline": [
                "TEXT VALUE FOR NWSHEADLINE"
            ]
        }
    }
}

var NWSheadline = entry.properties.parameters.NWSheadline || "default value";

console.log(NWSheadline);


var entry2 = {
    "properties": {
        "parameters": {
            "some_other_things": 123
        }
    }
}

var NWSheadline2 = entry2.properties.parameters.NWSheadline || "default value";

console.log(NWSheadline2);

我们entry NWSheadlineentry2 NWSheadline2。 输出:

> ["TEXT VALUE FOR NWSHEADLINE"]
> default value

希望它可以提供帮助