Javascript 为什么我的forloop+;if/else控制台记录未定义的值

Javascript 为什么我的forloop+;if/else控制台记录未定义的值,javascript,for-loop,undefined,Javascript,For Loop,Undefined,鉴于以下代码有效,并打印出所有的红色,为什么它还要在交互结束时打印出未定义的值 var cars只是一个具有各种属性的大型car对象数组 function queryCars(){ // Your code here for (var i = 0; i < cars.length; i++ ){ if(cars[i].color == "Red") { console.log(cars[i].make + " " + cars[i].model)

鉴于以下代码有效,并打印出所有的
红色
,为什么它还要在交互结束时打印出
未定义的

var cars
只是一个具有各种属性的大型car对象数组

function queryCars(){

  // Your code here
   for (var i = 0; i < cars.length; i++ ){
      if(cars[i].color == "Red") {
        console.log(cars[i].make + " " + cars[i].model)
      }
   }

}

未定义的
不是来自
控制台.log
。这是函数的返回值,因为函数不返回任何内容

例如,在repl.it中:

let a
let b
console.log(a + " " + b)
印刷品:

undefined undefined
=> undefined

并不是说
console.log
如果它是循环的一部分,就会打印2个
undefines

你是在别的地方调用
console.log
,即直接在
queryCars()
之后吗?因为汽车[i].make还是汽车[i].model是undefined@DacreDenny不。。。这是唯一一次调用它。您只需执行console.log(cars[i])即可自己调试它。不看你的数据很难知道,但我认为@Piyushhanna有答案。根据@DacreDenny所说的,这个未定义的似乎不是来自于for循环中的console.log,因为如果是的话,你会有不止一个未定义的。对吧。。所以我知道这是函数的返回值。。。没有返回任何内容,因此未定义。但有办法解决吗?我不能返回到循环中,因为它会停止循环。我可以在循环之外返回,并返回类似于“Done.”的内容,但我只希望它能够进行控制台操作。记录列表并退出…您不需要修复它。现在很好。这只是脚本执行者的行为。如果坚持不使用最后一个定义,可以返回“”。
undefined undefined
=> undefined