The For In Loop
The JavaScript for in
statement loops through the properties of an Object:
Syntax
for (key in object) {
// code block to be executed
}
Example
<!DOCTYPE html> <html> <body> <h2>JavaScript For In Loop</h2> <p>The for in statement loops through the properties of an object:</p> <p id="demo"></p> <script> const person = {fname:"John", lname:"Doe", age:25}; let txt = ""; for (let x in person) { txt += person[x] + " "; } document.getElementById("demo").innerHTML = txt; </script> </body> </html>
Result:
JavaScript For In Loop
The for in statement loops through the properties of an object:
John Doe 25
Example Explained
- The for in loop iterates over a person object
- Each iteration returns a key (x)
- The key is used to access the value of the key
- The value of the key is person[x]
For In Over Arrays
The JavaScript for in
statement can also loop over the properties of an Array:
Syntax
for (variable in array) {
code
}
Example
<!DOCTYPE html> <html> <body> <h2>JavaScript For In</h2> <p>The for in statement can loops over array values:</p> <p id="demo"></p> <script> const numbers = [45, 4, 9, 16, 25]; let txt = ""; for (let x in numbers) { txt += numbers[x] + "<br>"; } document.getElementById("demo").innerHTML = txt; </script> </body> </html>
Result:
JavaScript For In
The for in statement can loops over array values:
45
4
9
16
25
Do not use for in over an Array if the index order is important.
The index order is implementation-dependent, and array values may not be accessed in the order you expect.
It is better to use a for loop, a for of loop, or Array.forEach() when the order is important.
Array.forEach()
The forEach()
method calls a function (a callback function) once for each array element.
Example
<!DOCTYPE html> <html> <body> <h2>JavaScript Array.forEach()</h2> <p>Calls a function once for each array element.</p> <p id="demo"></p> <script> const numbers = [45, 4, 9, 16, 25]; let txt = ""; numbers.forEach(myFunction); document.getElementById("demo").innerHTML = txt; function myFunction(value, index, array) { txt += value + "<br>"; } </script> </body> </html>
Result:
JavaScript Array.forEach()
Calls a function once for each array element.
45
4
9
16
25
Note that the function takes 3 arguments:
- The item value
- The item index
- The array itself
The example above uses only the value parameter. It can be rewritten to:
Example
<!DOCTYPE html> <html> <body> <h2>JavaScript Array.forEach()</h2> <p>Calls a function once for each array element.</p> <p id="demo"></p> <script> const numbers = [45, 4, 9, 16, 25]; let txt = ""; numbers.forEach(myFunction); document.getElementById("demo").innerHTML = txt; function myFunction(value) { txt += value + "<br>"; } </script> </body> </html>
Result:
JavaScript Array.forEach()
Calls a function once for each array element.
45
4
9
16
25