我会尽力提出这个问题,因为我缺乏了解我正在寻找能够搜索它的知识,因为我不能使用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中是否有类似的结果或其他一些防止未定义的方法?
答案 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
NWSheadline
和entry2
NWSheadline2
。
输出:
> ["TEXT VALUE FOR NWSHEADLINE"]
> default value
希望它可以提供帮助