
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
How to iterate an array of objects and build a new one in JavaScript ?
Suppose, we have an array of objects like this −
const arr = [ { "customer": "Customer 1", "project": "1" }, { "customer": "Customer 2", "project": "2" }, { "customer": "Customer 2", "project": "3" } ]
We are required to write a JavaScript function that takes one such array, and yields (returns) a new array.
In the new array, all the customer keys with same values should be merged and the output should look something like this −
const output = [ { "Customer 1": { "projects": "1" } }, { "Customer 2": { "projects": [ "2", "3" ] } } ]
Example
Let us write the code −
const arr = [ { "customer": "Customer 1", "project": "1" }, { "customer": "Customer 2", "project": "2" }, { "customer": "Customer 2", "project": "3" } ] const groupCustomer = data => { const res = []; data.forEach(el => { let customer = res.filter(custom => { return el.customer === custom.customer; })[0]; if(customer){ customer.projects.push(el.project); }else{ res.push({ customer: el.customer, projects: [el.project] }); }; }); return res; }; console.log(groupCustomer(arr));
Output
And the output in the console will be −
[ { customer: 'Customer 1', projects: [ '1' ] }, { customer: 'Customer 2', projects: [ '2', '3' ] } ]
- Related Articles
- How to iterate over objects in array and sum a property in JavaScript
- Converting array of objects to an object of objects in JavaScript
- Sum of array object property values in new array of objects in JavaScript
- How to iterate json array – JavaScript?
- How to access properties of an array of objects in JavaScript?
- How to access methods of an array of objects in JavaScript?
- How to group an array of objects by key in JavaScript
- How to create an array of partial objects from another array in JavaScript?
- Search from an array of objects via array of string to get array of objects in JavaScript
- Converting array of objects to an object in JavaScript
- How to iterate over arrays and objects in jQuery?
- Sorting an array of objects by an array JavaScript
- How to convert nested array pairs to objects in an array in JavaScript ?
- Creating an array of objects based on another array of objects JavaScript
- How to sort an array of objects based on the length of a nested array in JavaScript

Advertisements