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