Functions and Arrays in Javascript.. Oh my!

ibex333

Diamond Member
Mar 26, 2005
4,094
123
106
I find this stuff very difficult to understand..

first, I have to create an array of 9 elements, then I have to populate the array with numbers, and then I have to use a function that searches through the array and reports if number was found. I did all that, but the function never "triggers". It's as if I never wrote that code. What gives?

Code:
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	</head>
	<body>
		<script type="text/javascript">
			/********* GLOBAL VARIABLES *********/
			// Enter any global variable in this region
			


			/********* FUNCTIONS *********/
			// Enter any functions in this region

			function countInRow(array, searchVal)
			{
					for (i = 0; i < 10; i++)
				{
					if (boardArray[i] === searchVal)
					{
						document.write("Match not found in index" + i);
					}
					else
					{
						document.write("Match found in index" + i);

					}
					

				}
			
			}

			/********* MAIN *********/
			function main()
			{
				// this will be the entry point of your program,
				// write your main code here


			
				
				
			var SIZE = 9;	
			var boardArray = new Array(SIZE); //give me 9 pieces of memory //literal 9 constant
			var BR = "<br />";
			var i;
				for (i = 0; i < 10; i++)
				{
					boardArray[i] = prompt("Enter a number for box" + i); //we are populating the array one box at a time
					document.write([i]); // to show which numbers we entered in the array
				}	
				
			var searchVal = prompt("Enter the value you are looking for within the array");
				
				
				
				
				
				
				
				
				
				countInRow(boardArray, searchVal);

				// This line calls main, don't change it:
				
			}
			main();
		</script>
	</body>

</html>
 

sygyzy

Lifer
Oct 21, 2000
14,001
4
76
I think the reason it fails is in your function you ask for "function countInRow(array, searchVal)" but in the actual function you are using boardArray which it has no recognition of.

Try changing if (boardArray === searchVal) to if (array === searchVal)
 

ibex333

Diamond Member
Mar 26, 2005
4,094
123
106
YES! Perfect! Thank you. Except there is still one small issue.


Code:
document.write([i]); // to show which numbers we entered in the array

this shows me the index numbers 0-9, but what I want is for it to show what is stored in indexes 0-9 after the prompt collects all input.
 

KLin

Lifer
Feb 29, 2000
30,950
1,076
126
You're only passing in i into the write method, not the array variable.
 

clamum

Lifer
Feb 13, 2003
26,256
406
126
Try document.write(boardArray);

This.

Just a suggestion, instead of your "for" loop looking like this in function "countInRow()":

Code:
for (i = 0; i < 10; i++)

I'd change it to:

Code:
for (i = 0; i < array.length; i++)

That way you can easily change how many numbers are stored in the array and won't have a hard-coded limit. :)
 

ibex333

Diamond Member
Mar 26, 2005
4,094
123
106
firebug ... download it.

or press F12 in chrome.

It does nothing for someone that doesn't understand how to use it. And even then, the messages it outputs dont really tell what the problem is in a clear way.



Quote:
Originally Posted by sygyzy View Post
Try document.write(boardArray);
This.

Just a suggestion, instead of your "for" loop looking like this in function "countInRow()":

Code:

for (i = 0; i < 10; i++)

I'd change it to:

Code:

for (i = 0; i < array.length; i++)

That way you can easily change how many numbers are stored in the array and won't have a hard-coded limit.


Thanks. That did it.
 

KLin

Lifer
Feb 29, 2000
30,950
1,076
126
It does nothing for someone that doesn't understand how to use it. And even then, the messages it outputs dont really tell what the problem is in a clear way.





Thanks. That did it.

That's why you download it, use it, use google to research errors you don't understand, etc. etc. Practice, practice, practice.