Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查是否未定义始终计算为true_Javascript - Fatal编程技术网

Javascript 检查是否未定义始终计算为true

Javascript 检查是否未定义始终计算为true,javascript,Javascript,我有以下Javascript var array = $('#calendar').fullCalendar('clientEvents'); var newArray = []; array.forEach(function(entry) { if (entry.description != undefined) { newArray.push(entry); } }); 我有一个充满对象的数组,其中有些有描述

我有以下Javascript

 var array = $('#calendar').fullCalendar('clientEvents');
    var newArray = [];
    array.forEach(function(entry) {
        if (entry.description != undefined) {
            newArray.push(entry);
        }
    });
我有一个充满对象的数组,其中有些有描述,有些没有——我想过滤掉那些没有描述的

我的问题是,无论描述是否未定义,if语句的计算结果始终为true

从屏幕截图中可以看到-entry.description未定义,但它仍将其推送到数组中

我做错了什么

更新 在重新启动firefox:S之后,它似乎可以按预期使用原始代码 我相信这可能是firefox调试器的问题。 无论如何,感谢大家的帮助-如果您有任何需要添加的内容,请随时对实际代码段发表评论,尽管尝试以下内容:

if ( typeof entry.description != "undefined" ) {
   //code if not undefined
}

尝试
hasOwnProperty

if(entry.hasOwnProperty("description ")){
  //you code
}

很可能什么都没有-您是否有此案例的示例数组?此外,你正在执行一个粗略的代码>数组。原型。过滤器< /代码>用你的代码> NeWraye< /Cult>和<代码>前缀 >只考虑使用它。我必须要问的是:你的全局未定义的变量仍然没有定义吗?):萨乔用什么来代替?undefined是ecmascript.js的一部分-但是是的:)现在似乎可以工作了-我认为这是firefox调试器的问题-没有显示正确的数据我不确定这是否是一个输入错误,但是您发布的代码使用了
==而图像显示
=
@VisualBean使用
Array.prototype.filter
而不是
forEach
并推送到
newArray
-例如
return Array.filter(函数(条目){return entry.description!==undefined})
。我不认为您的问题与比较有关,这就是为什么我要求提供一个数据样本数组进行试验的原因。