It appears you may just have missed the "messages" property in the data, so the loop is likely iterating the root Object rather than the Array:

for (var key in data.messages) {
    var obj = data.messages[key];
    // ...
}

Unless data was set to messages before the given snippet.

Though, you should consider changing that to a normal for loop for the Array:

for (var i = 0, l = data.messages.length; i < l; i++) {
    var obj = data.messages[i];
    // ...
}
Answer from Jonathan Lonowski on Stack Overflow
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › JavaScript › Reference › Statements › for...of
for...of - JavaScript | MDN - MDN Web Docs
The for...of statement executes a loop that operates on a sequence of values sourced from an iterable object. Iterable objects include instances of built-ins such as Array, String, TypedArray, Map, Set, NodeList (and other DOM collections), as well as the arguments object, generators produced ...
Discussions

javascript - How to loop through an array containing objects and access their properties - Stack Overflow
Looping through an array of objects is a pretty fundamental functionality. More on stackoverflow.com
🌐 stackoverflow.com
Loop through an array of objects and compare values. If value is not found, execute something else.
You can use .find(): const found = loc.find(({ storeNumber }) => storeNumber === sn); if (found) { //execute some code } Or a for-loop with a break: for (let i = 0; i < loc.length; i++) { if (loc[i].storeNumber === sn) { //execute some code break; } } More on reddit.com
🌐 r/learnjavascript
7
1
May 17, 2022
How to loop through every array inside an array of arrays (and objects) with unknown depth?
Here is the template for a queueing method you can use. It can be faster than recursion and doesn't run adrift of the issue with recursion depth. const queue = [mainArray]; while (true) { if (queue.length < 1) break; let current = queue.shift(); for (let x in current){ if (Array.isArray(current[x]) || typeof (current[x]) === "object") { queue.push(current[x])} else console.log(current[x]); } } More on reddit.com
🌐 r/learnjavascript
4
1
November 9, 2023
Basic Data Structures - Iterate Through All an Array's Items Using For Loops
Tell us what’s happening: I m very new to problem-solving and I am stuck on the first one. so the question asks to check if the set of nested arrays got the value passed in an element. Following is my code which isn’t right because I don’t know yet how to access each nested element or ... More on forum.freecodecamp.org
🌐 forum.freecodecamp.org
1
0
September 18, 2022
🌐
Reddit
reddit.com › r/learnjavascript › loop through array and create object of specific key/value pairs?
r/learnjavascript on Reddit: Loop through array and create object of specific key/value pairs?
March 31, 2023 -

I've been searching without success for a way to process some data that arrives as an array of objects. I need to pull out specific data from each object and create a new object from that. I don't actually create the data but based on the way it's formatted when it gets to me, I can tell you the code below would give the same structure. Below that is json of what I need to reformat it as.

It's always the same number slots but they're not always in the order. If they were the order, I'd have no problem. I need the Name, value and mode from each object. Some instances of this don't have what is in this sample the third element and in such cases, mode is not needed.

I'm not hear asking anyone to actually write the code for me -- I prefer to actually learn how to do it. But I'm hoping someone can point me in the right direction.

TIA!

slots[slots.length]={"name":"Name1","task":"Task1"};
slots[slots.length]={"Value":"Current Value","temperature":67,"status":"on"};
slots[slots.length]={"mode":"Current Mode","status":"selected"};

I need to convert that to (I can drop the remaining data it's not needed for my task):

{slotsObj:{"name":"Name1","value":"Current Value","mode":"Current Mode"}}
Top answer
1 of 4
1
I stuck your whole post in chat GPT, lol: You can use a loop to iterate over the array of objects and create a new object with the required key-value pairs. Here's an example of how you could do it: // input array const slots = [ {"name": "Name1", "task": "Task1"}, {"Value": "Current Value", "temperature": 67, "status": "on"}, {"mode": "Current Mode", "status": "selected"} ]; // output object const slotsObj = {}; // iterate over the input array for (let i = 0; i < slots.length; i++) { const slot = slots[i]; // check if the current object has the required properties if (slot.hasOwnProperty("name")) { slotsObj.name = slot.name; } else if (slot.hasOwnProperty("Value")) { slotsObj.value = slot.Value; } else if (slot.hasOwnProperty("mode")) { slotsObj.mode = slot.mode; } } // create the final object with the required properties const result = { slotsObj }; console.log(result); // output: { slotsObj: { name: 'Name1', value: 'Current Value', mode: 'Current Mode' } } This code checks each object in the slots array for the required properties (name, Value, and mode) and adds them to the slotsObj object. Then it creates the final object with the required structure. Note that if an object doesn't have one of the required properties, it will simply be ignored.
2 of 4
1
slots[slots.length]={"name":"Name1","task":"Task1"}; That's the most unique way I've seen someone .push() onto the end of an array 👀. That's a first for me. As for your problem at hand, here's a more imperative way you could approach it. Create an empty "result" object. We're going to gradually add stuff to it until we get what we want. Loop through each slot in the slots array For each slot, check if it has one of the properties you care about. If it does, add that property to your result object.
Top answer
1 of 16
511

Use forEach its a built-in array function. Array.forEach():

yourArray.forEach(function (arrayItem) {
    var x = arrayItem.prop1 + 2;
    console.log(x);
});
2 of 16
322

Some use cases of looping through an array in the functional programming way in JavaScript:

1. Just loop through an array

const myArray = [{x:100}, {x:200}, {x:300}];

myArray.forEach((element, index, array) => {
    console.log(element.x); // 100, 200, 300
    console.log(index); // 0, 1, 2
    console.log(array); // same myArray object 3 times
});

Note: Array.prototype.forEach() is not a functional way strictly speaking, as the function it takes as the input parameter is not supposed to return a value, which thus cannot be regarded as a pure function.

2. Check if any of the elements in an array pass a test

const people = [
    {name: 'John', age: 23}, 
    {name: 'Andrew', age: 3}, 
    {name: 'Peter', age: 8}, 
    {name: 'Hanna', age: 14}, 
    {name: 'Adam', age: 37}];

const anyAdult = people.some(person => person.age >= 18);
console.log(anyAdult); // true

3. Transform to a new array

const myArray = [{x:100}, {x:200}, {x:300}];

const newArray= myArray.map(element => element.x);
console.log(newArray); // [100, 200, 300]

Note: The map() method creates a new array with the results of calling a provided function on every element in the calling array.

4. Sum up a particular property, and calculate its average

const myArray = [{x:100}, {x:200}, {x:300}];

const sum = myArray.map(element => element.x).reduce((a, b) => a + b, 0);
console.log(sum); // 600 = 0 + 100 + 200 + 300

const average = sum / myArray.length;
console.log(average); // 200

5. Create a new array based on the original but without modifying it

const myArray = [{x:100}, {x:200}, {x:300}];

const newArray= myArray.map(element => {
    return {
        ...element,
        x: element.x * 2
    };
});

console.log(myArray); // [100, 200, 300]
console.log(newArray); // [200, 400, 600]

6. Count the number of each category

const people = [
    {name: 'John', group: 'A'}, 
    {name: 'Andrew', group: 'C'}, 
    {name: 'Peter', group: 'A'}, 
    {name: 'James', group: 'B'}, 
    {name: 'Hanna', group: 'A'}, 
    {name: 'Adam', group: 'B'}];

const groupInfo = people.reduce((groups, person) => {
    const {A = 0, B = 0, C = 0} = groups;
    if (person.group === 'A') {
        return {...groups, A: A + 1};
    } else if (person.group === 'B') {
        return {...groups, B: B + 1};
    } else {
        return {...groups, C: C + 1};
    }
}, {});

console.log(groupInfo); // {A: 3, C: 1, B: 2}

7. Retrieve a subset of an array based on particular criteria

const myArray = [{x:100}, {x:200}, {x:300}];

const newArray = myArray.filter(element => element.x > 250);
console.log(newArray); // [{x:300}] 

Note: The filter() method creates a new array with all elements that pass the test implemented by the provided function.

8. Sort an array

const people = [
  { name: "John", age: 21 },
  { name: "Peter", age: 31 },
  { name: "Andrew", age: 29 },
  { name: "Thomas", age: 25 }
];

let sortByAge = people.sort(function (p1, p2) {
  return p1.age - p2.age;
});

console.log(sortByAge);

9. Find an element in an array

const people = [ {name: "john", age:23},
                {name: "john", age:43},
                {name: "jim", age:101},
                {name: "bob", age:67} ];

const john = people.find(person => person.name === 'john');
console.log(john);

The Array.prototype.find() method returns the value of the first element in the array that satisfies the provided testing function.

References

  • Array.prototype.some()
  • Array.prototype.forEach()
  • Array.prototype.map()
  • Array.prototype.filter()
  • Array.prototype.sort()
  • Spread syntax
  • Array.prototype.find()
🌐
freeCodeCamp
freecodecamp.org › news › loop-through-arrays-javascript
How to Loop Through Arrays in JavaScript
October 31, 2023 - In this example, we loop through an array of objects, "people," and for each object, (person) we further iterate through its properties using a nested for...in loop to print all the properties and their values.
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › JavaScript › Reference › Statements › for...in
for...in - JavaScript | MDN - MDN Web Docs
The for...in statement iterates over all enumerable string properties of an object (ignoring properties keyed by symbols), including inherited enumerable properties.
🌐
GeeksforGeeks
geeksforgeeks.org › javascript › how-to-loop-through-an-array-containing-multiple-objects-and-access-their-properties-in-javascript
How to Traverse Array of Objects and Access the Properties in JavaScript? - GeeksforGeeks
July 23, 2025 - Object.keys() returns an array of a given object's own enumerable property names (keys). ... const a = [ {name: 'Saritha', sub: 'Maths'}, {name: 'Sarthak', sub: 'Science'}, {name: 'Sneha', sub: 'Social'} ] for (let teacher in a) { for (let key in a[teacher]) { console.log(a[teacher][key]); } } ... The outer for...in loop iterates over the array, where each teacher is the index of an object in the array.
Find elsewhere
🌐
Reddit
reddit.com › r/learnjavascript › loop through an array of objects and compare values. if value is not found, execute something else.
r/learnjavascript on Reddit: Loop through an array of objects and compare values. If value is not found, execute something else.
May 17, 2022 -

This is probably an easy problem but I just can't figure it out. I'll try to explain in detail within the test script.

// an array of objects obviously...
var loc = [ 
{"id":12345, "storeNumber":"0466"},
{"id":1235, "storeNumber":"566"}
]

//our number to match the "storeNumber". 
var sn = "466";

//If sn is found, we want to execute some code
loc.forEach(function(item) {
  if(sn == item.storeNumber) {
    //execute some code
  }

//if value does not exist, like it currently doesn't...Then I need to prepend a 0 to sn variable that is 3 letters in length.
}]

Here's my problem with this...As you can see the variable sn is 466. If there is no match, and the variable is 3 characters in length. I need to prepend a zero to it. sn would then be 0466.

0466 matches storeNumber with id 12345.

How would I go about getting the ID of 0466 if the first condition if(sn == item.storeNumber) doesn't match anything in the array of objects?

The problem here is that the forEach loop will loop through hundreds of records and return true for one if it is found. But that doesn't stop the loop from running, so everything after the loop would still be false, therefore I couldn't have an else statement.

Also, I have to use ES5 syntax because i'm working with ServiceNow and it doesn't allow for ES6.

🌐
W3Schools
w3schools.com › js › js_array_iteration.asp
JavaScript Array Iteration
Create an Array Iterator object, containing the keys of the array:
🌐
CoreUI
coreui.io › blog › how-to-loop-through-an-array-in-javascript
How to loop through an array in JavaScript · CoreUI
July 23, 2024 - You can also use the map method to create a new array based on properties of objects in the original array. This method creates a new array with transformed data. const userNames = users.map(user => user.name) console.log(userNames) JavaScript offers a variety of ways to loop through arrays, each with its own advantages.
🌐
Reactgo
reactgo.com › javascript-loop-through-array-of-objects
How to loop through array of objects in JavaScript(es6) | Reactgo
June 16, 2023 - forEach methods takes the callback function as an argument and runs on each object present in the array. let users = [ { id:1, name:"king" }, { id:2, name:"john" }, { id:3, name:"gowtham" } ] for(let user of users){ console.log(user.id,user.name) ...
🌐
Reddit
reddit.com › r/learnjavascript › how to loop through every array inside an array of arrays (and objects) with unknown depth?
r/learnjavascript on Reddit: How to loop through every array inside an array of arrays (and objects) with unknown depth?
November 9, 2023 -

Let's say I have an array like this:

mainArray = [
    0: {
        title: "Socials"
        chilren: [
            0 = {id: 1, title: "Twitter"},
            1 = {id: 2, title: "Facebook"},
            2 = {id: 3, title: "YouTube"}
        ]
    },
    1: {
        title: "Forums"
        children: [
            0 = {
                id: 1,
                title: "Car Forums
                children = [
                    MORESUBFOLDERS?,
                    MORESFILES?
                ]
            "},
            2 = {id: 3, title: "tech-forum.com"},
            3 = {id: 4, title: "fitness-forum,com"}
        ]
    },
    n: {...}
];  

This array represents a file structure with an unknown number of subfolders and files, with the main array being the root folder.

As you can see, each object inside the mainArray is a subfolder, these subfolder objects can contain an object representing a file, or an array inside an object representing a new subfolder. These sub-sub-folders can also have files as objects or subfolders as arrays, and this can go on for ever in theory. Obviously in practice there's limited depth, but the idea is to have a single function that traverses the entire data structure and returns something like:

rootFolder: {
    folder1: {
        subfolder1: {
            subfolderN {...}
            subfolderN {...}
            fileN
            fileN
        }
    }
    folderN: {
        subfolderN: {
            subfolderN {...}
            subfolderN {...}
            fileN
            fileN
        }
    }
};  

So I can render this as an HTML nested unordered list.

🌐
Log4JavaScript
log4javascript.org › home › js-framework › the art of looping through arrays of objects in javascript
JavaScript Loop Through Array of Objects: Master the Art
July 4, 2023 - It’s also important to note that ... reduce(). Additionally, JavaScript allows looping through multidimensional arrays by nesting loops....
🌐
Flexiple
flexiple.com › javascript › loop-through-object-javascript
How to loop through objects keys and values in Javascript?
Utilize methods that allow for efficient enumeration and access to iterate through an object's keys and values in JavaScript. The for...in loop offers a simple way to traverse all enumerable properties of an object, enabling you to access each ...
🌐
xjavascript
xjavascript.com › blog › how-to-loop-through-an-array-containing-objects-and-access-their-properties
How to Loop Through an Array of Objects in JavaScript and Access Their Properties: Fixing Undefined Errors and Common Looping Issues — xjavascript.com
This blog will demystify looping through arrays of objects in JavaScript. We’ll cover every major looping method, explain how to safely access object properties, troubleshoot common issues like undefined errors, and share best practices to write robust, error-free code.
🌐
freeCodeCamp
forum.freecodecamp.org › javascript
Basic Data Structures - Iterate Through All an Array's Items Using For Loops - JavaScript - The freeCodeCamp Forum
September 18, 2022 - Tell us what’s happening: I m very new to problem-solving and I am stuck on the first one. so the question asks to check if the set of nested arrays got the value passed in an element. Following is my code which isn’t r…
🌐
Index.dev
index.dev › blog › javascript-object-iteration-methods
10 Effective Methods to Iterate Over JavaScript Objects
If you're working with a single object, you can't use this directly. ... for...of loop. You must first transform the item into an iterable structure, such as an array, in order to utilize it with it. const movie = { title: 'Inception', director: 'Christopher Nolan', year: 2010 }; for (const [key, value] of Object.entries(movie)) { console.log(`${key}: ${value}`); }
🌐
TutorialsPoint
tutorialspoint.com › how-do-we-loop-through-array-of-arrays-containing-objects-in-javascript
How do we loop through array of arrays containing objects in JavaScript?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 18px; font-weight: 500; color: rebeccapurple; } </style> </head> <body> <h1>Loop through array of arrays containing objects in JavaScript</h1> <div class="result"></div> <button class="Btn">CLICK HERE</button> <h3> Click the above button to loop throught the arrObj </h3> <script> let BtnEle = document.querySelector(".Btn"); let resEle =