Reputation: 165
I made an array with several strings as values so it becomes one really long line that takes a while to scroll through. To put it on multiple lines I searched and found that I can use a + sign to link the lines, but I'm having a problem. Here's a small example:
<script type="text/javascript">
var x;
var colorArr=["Red","Orange","Yellow",+
"Green","Blue","Purple"];
for(x=0;x<6;x++)
document.write(colorArr[x]+"<br/>");
</script>
This outputs:
Red
Orange
Yellow
NaN
Blue
Purple
Basically whichever element is the first on the line becomes undefined for some reason. How do I do this the correct way?
Upvotes: 8
Views: 34101
Reputation: 102753
You don't need the +
, just flow to the next line. Javascript doesn't equate the end of the line with the end of the statement.
var colorArr=["Red","Orange","Yellow",
"Green","Blue","Purple"];
To understand the behavior you're seeing, note that this:
var test = -"test";
alert(test);
Outputs the NaN
(not a number) that you're seeing. The parser is attempting to convert "Green" to a number -- so that it can evaluate what it assumes is a math expression (since it begins with +
).
Upvotes: 18
Reputation: 66971
You can just press enter and go to the next line, no need for anything syntactically.
The reason it comes up as NaN
is that it is trying to add a number
with a string
.
If you had: arr = ['whatever', 5 + 10];
it would output ['whatever', 15]
Upvotes: 1
Reputation: 146300
+ "Green"
is not a number.
Hence the NaN
Try just doing this:
var colorArr=["Red","Orange","Yellow",
"Green","Blue","Purple"];
NaN
does not mean undefined:
NaN === undefined; // false
Upvotes: 7