Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 JS can'中的数组映射;未定义的捕获_Javascript_Dictionary_Null_Undefined - Fatal编程技术网

Javascript JS can'中的数组映射;未定义的捕获

Javascript JS can'中的数组映射;未定义的捕获,javascript,dictionary,null,undefined,Javascript,Dictionary,Null,Undefined,我正在根据API中的数据建立一个列表。 从上述API中,我得到了一个对象数组,由于某些原因,第一个和最后一个对象都有未定义的值。 使用下面的代码,我试图捕获未定义的值,但似乎无法处理它。 不管发生什么,这些值都会通过 results.map(result => { var distance = result.distance; if(distance !== undefined || distance !== 'undefined' || distance !=

我正在根据API中的数据建立一个列表。 从上述API中,我得到了一个对象数组,由于某些原因,第一个和最后一个对象都有未定义的值。 使用下面的代码,我试图捕获未定义的值,但似乎无法处理它。 不管发生什么,这些值都会通过

  results.map(result => {
      var distance = result.distance;
      if(distance !== undefined || distance !== 'undefined' || distance !== "undefined" || distance !== null){
        console.log(distance, typeof distance);
        var list_button = document.createElement('button', 'button');
        list_button.setAttribute('class', 'list_button');
        list_button.innerText = `${result.title} -- ${distance}`;
        listParent.appendChild(list_button);
      }else{
        console.log('distance is undefined');
    }
    });

打印结果以确定其中一个对象是什么
distance!==未定义的距离!='未定义的“
始终为真<代码>距离不是
未定义的
或不是字符串。如果任一侧为
true
,则逻辑OR(
|
)返回
true
。是逻辑AND(
&&
)。@Ivar我已经记录了结果,第一个结果是未定义的,不是字符串。它应该像代码一样捕获它。如果我更改为&operator,它肯定会错过它否:因为您正在检查它们是否未定义。因此,条件永远不会是错误的!(顺便说一句,
'undefined'
“undefined”
是同一个字符串。)“如果苹果不是红色的或者苹果不是绿色的,那么我就吃它”——你现在可以吃任何苹果了。因为如果它是红色,那么“非红色”将是错误的,但“非绿色”将是正确的,因为红色不是绿色,并且你正在与OR结合,所以这些事情中的一个是正确的就足够了。绿色的也一样。或任何其他颜色。然而,如果你说“如果苹果不是红色的,苹果不是绿色的”,那么它将匹配任何既不是红色也不是绿色的东西(例如黄色)。