检查不确定值时出现意外结果

时间:2019-03-02 20:23:03

标签: javascript

我有一个对象数组,这些对象的长度最多为4,至少为1。在这里,我检查存在哪些元素并相应地执行操作。

function sendToGroup(receiver_group) {
  if (receiver_group[0] !== undefined){
    console.log(receiver_group[0])
  }

  if(receiver_group[1] !== undefined){
    console.log(receiver_group[1])
  }

  if(receiver_group[2] !== undefined){
    console.log(receiver_group[2])
  }

  if(receiver_group[3] !== undefined){
    console.log(receiver_group[3])
  }
}

当我将2个元素的数组赋给该函数时,我在控制台输出中看到了预期的第一个和第二个元素,但是在

行中也看到了一个未定义的
console.log(receiver_group[2])

这怎么可能?如果它是未定义的,则不应执行此日志记录代码。

编辑:Chrome浏览器说数组的长度是2。是的。 receiver_group是一个数组。内容为

[{id:12, name:"name", age:"21"}, {id:22, name:"name", age:25}]

索引为3的项目4也不会发生同样的事情。

1 个答案:

答案 0 :(得分:4)

如果我执行以下代码,它还会打印 undefined

if(1==2){}
  

在控制台中,您可以输入变量名(例如try   键入窗口),并打印有关它的信息。当你跑空的时候   功能(例如console.log),它还会打印出信息   关于返回值(在这种情况下为未定义)。

因此,在记录[0]和[1]值后打印未定义是正确的行为,因为它试图打印未定义的返回值。

请参考答案:Chrome/Firefox console.log always appends a line saying undefined