我有一个对象数组,这些对象的长度最多为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也不会发生同样的事情。
答案 0 :(得分:4)
如果我执行以下代码,它还会打印 undefined :
if(1==2){}
在控制台中,您可以输入变量名(例如try 键入窗口),并打印有关它的信息。当你跑空的时候 功能(例如console.log),它还会打印出信息 关于返回值(在这种情况下为未定义)。
因此,在记录[0]和[1]值后打印未定义是正确的行为,因为它试图打印未定义的返回值。
请参考答案:Chrome/Firefox console.log always appends a line saying undefined