Why does my forloop + if/else console log an undefined value [duplicate]
This question already has an answer here:
Chrome/Firefox console.log always appends a line saying undefined
6 answers
Given the following code, which works, and prints out all colors that are red
, why does it also print out an undefined
value at the end of the interations?
var cars
is just a large array of car-objects with various properties.
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)
Result:
queryCars();
"Audi A5"
"Audi TT"
"BMW 3"
"BMW X5"
"Hyundai Elantra"
"Acura TLX"
undefined
javascript for-loop undefined
marked as duplicate by Bergi
StackExchange.ready(function()
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function()
$hover.showInfoMessage('',
messageElement: $msg.clone().show(),
transient: false,
position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
dismissable: false,
relativeToBody: true
);
,
function()
StackExchange.helpers.removeMessages();
);
);
);
Nov 13 '18 at 19:32
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
|
show 11 more comments
This question already has an answer here:
Chrome/Firefox console.log always appends a line saying undefined
6 answers
Given the following code, which works, and prints out all colors that are red
, why does it also print out an undefined
value at the end of the interations?
var cars
is just a large array of car-objects with various properties.
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)
Result:
queryCars();
"Audi A5"
"Audi TT"
"BMW 3"
"BMW X5"
"Hyundai Elantra"
"Acura TLX"
undefined
javascript for-loop undefined
marked as duplicate by Bergi
StackExchange.ready(function()
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function()
$hover.showInfoMessage('',
messageElement: $msg.clone().show(),
transient: false,
position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
dismissable: false,
relativeToBody: true
);
,
function()
StackExchange.helpers.removeMessages();
);
);
);
Nov 13 '18 at 19:32
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
are you callingconsole.log
somewhere else , ie directly afterqueryCars()
?
– Dacre Denny
Nov 13 '18 at 19:19
2
because either of cars[i].make Or cars[i].model is undefined
– Piyush Khanna
Nov 13 '18 at 19:20
@DacreDenny nope... that is the only time it is called.
– acd37
Nov 13 '18 at 19:22
You can just do console.log(cars[i]) to debug this yourself. Without looking at your data it's hard to know, but I think @PiyushKhanna has the answer.
– bluejack
Nov 13 '18 at 19:22
1
building on what @DacreDenny said, this undefined doesn't appear to be coming from the console.log in the for loop, because you'd have more than just 1 undefined if it were.
– ODYN-Kon
Nov 13 '18 at 19:22
|
show 11 more comments
This question already has an answer here:
Chrome/Firefox console.log always appends a line saying undefined
6 answers
Given the following code, which works, and prints out all colors that are red
, why does it also print out an undefined
value at the end of the interations?
var cars
is just a large array of car-objects with various properties.
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)
Result:
queryCars();
"Audi A5"
"Audi TT"
"BMW 3"
"BMW X5"
"Hyundai Elantra"
"Acura TLX"
undefined
javascript for-loop undefined
This question already has an answer here:
Chrome/Firefox console.log always appends a line saying undefined
6 answers
Given the following code, which works, and prints out all colors that are red
, why does it also print out an undefined
value at the end of the interations?
var cars
is just a large array of car-objects with various properties.
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)
Result:
queryCars();
"Audi A5"
"Audi TT"
"BMW 3"
"BMW X5"
"Hyundai Elantra"
"Acura TLX"
undefined
This question already has an answer here:
Chrome/Firefox console.log always appends a line saying undefined
6 answers
javascript for-loop undefined
javascript for-loop undefined
asked Nov 13 '18 at 19:18
acd37acd37
14029
14029
marked as duplicate by Bergi
StackExchange.ready(function()
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function()
$hover.showInfoMessage('',
messageElement: $msg.clone().show(),
transient: false,
position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
dismissable: false,
relativeToBody: true
);
,
function()
StackExchange.helpers.removeMessages();
);
);
);
Nov 13 '18 at 19:32
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by Bergi
StackExchange.ready(function()
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function()
$hover.showInfoMessage('',
messageElement: $msg.clone().show(),
transient: false,
position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
dismissable: false,
relativeToBody: true
);
,
function()
StackExchange.helpers.removeMessages();
);
);
);
Nov 13 '18 at 19:32
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
are you callingconsole.log
somewhere else , ie directly afterqueryCars()
?
– Dacre Denny
Nov 13 '18 at 19:19
2
because either of cars[i].make Or cars[i].model is undefined
– Piyush Khanna
Nov 13 '18 at 19:20
@DacreDenny nope... that is the only time it is called.
– acd37
Nov 13 '18 at 19:22
You can just do console.log(cars[i]) to debug this yourself. Without looking at your data it's hard to know, but I think @PiyushKhanna has the answer.
– bluejack
Nov 13 '18 at 19:22
1
building on what @DacreDenny said, this undefined doesn't appear to be coming from the console.log in the for loop, because you'd have more than just 1 undefined if it were.
– ODYN-Kon
Nov 13 '18 at 19:22
|
show 11 more comments
are you callingconsole.log
somewhere else , ie directly afterqueryCars()
?
– Dacre Denny
Nov 13 '18 at 19:19
2
because either of cars[i].make Or cars[i].model is undefined
– Piyush Khanna
Nov 13 '18 at 19:20
@DacreDenny nope... that is the only time it is called.
– acd37
Nov 13 '18 at 19:22
You can just do console.log(cars[i]) to debug this yourself. Without looking at your data it's hard to know, but I think @PiyushKhanna has the answer.
– bluejack
Nov 13 '18 at 19:22
1
building on what @DacreDenny said, this undefined doesn't appear to be coming from the console.log in the for loop, because you'd have more than just 1 undefined if it were.
– ODYN-Kon
Nov 13 '18 at 19:22
are you calling
console.log
somewhere else , ie directly after queryCars()
?– Dacre Denny
Nov 13 '18 at 19:19
are you calling
console.log
somewhere else , ie directly after queryCars()
?– Dacre Denny
Nov 13 '18 at 19:19
2
2
because either of cars[i].make Or cars[i].model is undefined
– Piyush Khanna
Nov 13 '18 at 19:20
because either of cars[i].make Or cars[i].model is undefined
– Piyush Khanna
Nov 13 '18 at 19:20
@DacreDenny nope... that is the only time it is called.
– acd37
Nov 13 '18 at 19:22
@DacreDenny nope... that is the only time it is called.
– acd37
Nov 13 '18 at 19:22
You can just do console.log(cars[i]) to debug this yourself. Without looking at your data it's hard to know, but I think @PiyushKhanna has the answer.
– bluejack
Nov 13 '18 at 19:22
You can just do console.log(cars[i]) to debug this yourself. Without looking at your data it's hard to know, but I think @PiyushKhanna has the answer.
– bluejack
Nov 13 '18 at 19:22
1
1
building on what @DacreDenny said, this undefined doesn't appear to be coming from the console.log in the for loop, because you'd have more than just 1 undefined if it were.
– ODYN-Kon
Nov 13 '18 at 19:22
building on what @DacreDenny said, this undefined doesn't appear to be coming from the console.log in the for loop, because you'd have more than just 1 undefined if it were.
– ODYN-Kon
Nov 13 '18 at 19:22
|
show 11 more comments
1 Answer
1
active
oldest
votes
This undefined
is not coming from the console.log
. It's the return value of the function, since function is not returning anything.
For example, in repl.it:
let a
let b
console.log(a + " " + b)
prints:
undefined undefined
=> undefined
Not that the console.log
would have printed 2 undefines
if it were part of that loop.
Right.. so I understand that it is the return value of the function... nothing returned, thus undefined. But is there a way to fix it? I can't return inside the loop because then it stops the loop. I can return outside of the loop, and return something like "Done.", but I just want it to console.log the list and exit...
– acd37
Nov 13 '18 at 19:32
1
You don't need to fix it. It's fine as is. It's just the behavior of the script executor. If you insist on not having that last define, you can return "".
– ODYN-Kon
Nov 13 '18 at 19:38
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This undefined
is not coming from the console.log
. It's the return value of the function, since function is not returning anything.
For example, in repl.it:
let a
let b
console.log(a + " " + b)
prints:
undefined undefined
=> undefined
Not that the console.log
would have printed 2 undefines
if it were part of that loop.
Right.. so I understand that it is the return value of the function... nothing returned, thus undefined. But is there a way to fix it? I can't return inside the loop because then it stops the loop. I can return outside of the loop, and return something like "Done.", but I just want it to console.log the list and exit...
– acd37
Nov 13 '18 at 19:32
1
You don't need to fix it. It's fine as is. It's just the behavior of the script executor. If you insist on not having that last define, you can return "".
– ODYN-Kon
Nov 13 '18 at 19:38
add a comment |
This undefined
is not coming from the console.log
. It's the return value of the function, since function is not returning anything.
For example, in repl.it:
let a
let b
console.log(a + " " + b)
prints:
undefined undefined
=> undefined
Not that the console.log
would have printed 2 undefines
if it were part of that loop.
Right.. so I understand that it is the return value of the function... nothing returned, thus undefined. But is there a way to fix it? I can't return inside the loop because then it stops the loop. I can return outside of the loop, and return something like "Done.", but I just want it to console.log the list and exit...
– acd37
Nov 13 '18 at 19:32
1
You don't need to fix it. It's fine as is. It's just the behavior of the script executor. If you insist on not having that last define, you can return "".
– ODYN-Kon
Nov 13 '18 at 19:38
add a comment |
This undefined
is not coming from the console.log
. It's the return value of the function, since function is not returning anything.
For example, in repl.it:
let a
let b
console.log(a + " " + b)
prints:
undefined undefined
=> undefined
Not that the console.log
would have printed 2 undefines
if it were part of that loop.
This undefined
is not coming from the console.log
. It's the return value of the function, since function is not returning anything.
For example, in repl.it:
let a
let b
console.log(a + " " + b)
prints:
undefined undefined
=> undefined
Not that the console.log
would have printed 2 undefines
if it were part of that loop.
answered Nov 13 '18 at 19:25
ODYN-KonODYN-Kon
2,1671825
2,1671825
Right.. so I understand that it is the return value of the function... nothing returned, thus undefined. But is there a way to fix it? I can't return inside the loop because then it stops the loop. I can return outside of the loop, and return something like "Done.", but I just want it to console.log the list and exit...
– acd37
Nov 13 '18 at 19:32
1
You don't need to fix it. It's fine as is. It's just the behavior of the script executor. If you insist on not having that last define, you can return "".
– ODYN-Kon
Nov 13 '18 at 19:38
add a comment |
Right.. so I understand that it is the return value of the function... nothing returned, thus undefined. But is there a way to fix it? I can't return inside the loop because then it stops the loop. I can return outside of the loop, and return something like "Done.", but I just want it to console.log the list and exit...
– acd37
Nov 13 '18 at 19:32
1
You don't need to fix it. It's fine as is. It's just the behavior of the script executor. If you insist on not having that last define, you can return "".
– ODYN-Kon
Nov 13 '18 at 19:38
Right.. so I understand that it is the return value of the function... nothing returned, thus undefined. But is there a way to fix it? I can't return inside the loop because then it stops the loop. I can return outside of the loop, and return something like "Done.", but I just want it to console.log the list and exit...
– acd37
Nov 13 '18 at 19:32
Right.. so I understand that it is the return value of the function... nothing returned, thus undefined. But is there a way to fix it? I can't return inside the loop because then it stops the loop. I can return outside of the loop, and return something like "Done.", but I just want it to console.log the list and exit...
– acd37
Nov 13 '18 at 19:32
1
1
You don't need to fix it. It's fine as is. It's just the behavior of the script executor. If you insist on not having that last define, you can return "".
– ODYN-Kon
Nov 13 '18 at 19:38
You don't need to fix it. It's fine as is. It's just the behavior of the script executor. If you insist on not having that last define, you can return "".
– ODYN-Kon
Nov 13 '18 at 19:38
add a comment |
are you calling
console.log
somewhere else , ie directly afterqueryCars()
?– Dacre Denny
Nov 13 '18 at 19:19
2
because either of cars[i].make Or cars[i].model is undefined
– Piyush Khanna
Nov 13 '18 at 19:20
@DacreDenny nope... that is the only time it is called.
– acd37
Nov 13 '18 at 19:22
You can just do console.log(cars[i]) to debug this yourself. Without looking at your data it's hard to know, but I think @PiyushKhanna has the answer.
– bluejack
Nov 13 '18 at 19:22
1
building on what @DacreDenny said, this undefined doesn't appear to be coming from the console.log in the for loop, because you'd have more than just 1 undefined if it were.
– ODYN-Kon
Nov 13 '18 at 19:22