Loop through objects keys and values in Javascript

The various methods that can be used to loop through objects in JavaScript are:
- Using a for...in loop
- Object.keys method
- Object.values method
- Object.entries method
The For... in loop
const user = {
name: 'John Doe',
email: 'john.doe@example.com',
age: 35,
dob: '28/12/1984',
active: true
};
// iterate over the user object
for (const key in user) {
if (user.hasOwnProperty(key)) { // Explicitly check if the property belongs to the object or has been inherited
console.log(`${key}: ${user[key]}`);
}
}
// name: John Doe
// email: john.doe@example.com
// age: 35
// dob: 28/12/1984
// active: true
The object.keys() method
It takes the object that you want to loop over as an argument and returns an array containing all properties names (or keys). After which you can use any of the array looping methods, such as forEach(), to iterate through the array and retrieve the value of each property.
const courses = {
java: 10,
javascript: 55,
nodejs: 5,
php: 15
};
// convert object to key's array
const keys = Object.keys(courses);
console.log(keys);
// [ 'java', 'javascript', 'nodejs', 'php' ]
// iterate over object
keys.forEach((key, index) => {
console.log(`${key}: ${courses[key]}`);
});
// java: 10
// javascript: 55
// nodejs: 5
// php: 15
The Object.values() method
It returns the values of all properties in the object as an array. You can then loop through the values array by using any of the array looping methods.
const animals = {
tiger: 1,
cat: 2,
monkey: 3,
elephant: 4
};
Object.values(animals).forEach(val => console.log(val)); // iterate over object values
// 1
// 2
// 3
// 4
The Object.entries() method
Object.entries() outputs an array of arrays, with each inner array having two elements. The first element being the property and the second element is the value.
const animals = {
tiger: 1,
cat: 2,
monkey: 3,
elephant: 4
};
const entries = Object.entries(animals);
console.log(entries);
// [ [ 'tiger', 1 ],
// [ 'cat', 2 ],
// [ 'monkey', 3 ],
// [ 'elephant', 4 ] ]
AND to loop over the array returned by Object.entries(), you can either use the for...of loop or the forEach() method as shown below:
for (const [key, value] of Object.entries(animals)) { // for...of loop
console.log(`${key}: ${value}`);
}
OR
Object.entries(animals).forEach(([key, value]) => { // `.forEach()` method
console.log(`${key}: ${value}`)
});




