How To Iterate Through JavaScript Objects
JavaScript
15/03/2021
Unlike arrays, JavaScript objects are not iterable. This means functions and statements like map(), forEach() or for..of will not work. If you attempt to do so, you'll be greeted with lovely errors such as TypeError: <Object>.forEach is not a function or TypeError: <Object> is not iterable.
However, there are a few ways to loop through an object, depending on whether you want its keys or values.
Let's take this object as an example:
const daysInMonth = { January: 31, February: 28, March: 31,}Iterating over keys
You can easily obtain the keys/properties of an object with Object.keys().
Object.keys(daysInMonth)// Array(3) [ "January", "February", "March" ]As the output is an iterable object (i.e. array), you may then apply one of the above-mentioned methods or statements. However, there is also a way to directly iterate over your object using for...in.
for (let month in daysInMonth) { console.log(month)}// January// February// MarchIterating over values
Similarly, to get the values of an object, you may use Object.values().
Object.values(daysInMonth)// Array(3) [ 31, 28, 31 ]Yet, to loop through the values, I prefer the following method:
for (let month in daysInMonth) { console.log(daysInMonth[month])}// 31// 28// 31