
- 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
Convert array of objects to an object of arrays in JavaScript
Suppose we have an array of objects like this −
const nights = [ { "2016-06-25": 32, "2016-06-26": 151, "2016-06-27": null }, { "2016-06-24": null, "2016-06-25": null, "2016-06-26": null }, { "2016-06-26": 11, "2016-06-27": 31, "2016-06-28": 31 }, ];
We are required to write a JavaScript function that takes in one such array and constructs an object of arrays based on object keys.
Therefore, the output for the above array should look like −
const output = { "2016-06-24": [null], "2016-06-25": [32, null], "2016-06-26": [151, null, 11], "2016-06-27": [null, 31], "2016-06-28": [31] };
Example
The code for this will be:
const nights = [ { "2016-06-25": 32, "2016-06-26": 151, "2016-06-27": null }, { "2016-06-24": null, "2016-06-25": null, "2016-06-26": null }, { "2016-06-26": 11, "2016-06-27": 31, "2016-06-28": 31 }, ]; const arrayToObject = (arr = []) => { const res = {}; for(let i = 0; i < arr.length; i++){ const keys = Object.keys(arr[i]); for(let j = 0; j < keys.length; j++){ if(res.hasOwnProperty(keys[j])){ res[keys[j]].push(arr[i][keys[j]]); } else{ res[keys[j]] = [arr[i][keys[j]]]; } } }; return res; }; console.log(arrayToObject(nights));
Output
And the output in the console will be −
{ '2016-06-25': [ 32, null ], '2016-06-26': [ 151, null, 11 ], '2016-06-27': [ null, 31 ], '2016-06-24': [ null ], '2016-06-28': [ 31 ] }
- Related Articles
- Convert object of objects to array in JavaScript
- Convert object to array of objects in JavaScript
- Convert array of arrays to array of objects grouped together JavaScript
- Convert an array of objects into plain object in JavaScript
- JavaScript Converting array of objects into object of arrays
- Converting array of objects to an object of objects in JavaScript
- Array of objects to array of arrays in JavaScript
- Converting array of objects to an object in JavaScript
- Splitting an object into an array of objects in JavaScript
- Converting array of arrays into an object in JavaScript
- How to combine two arrays into an array of objects in JavaScript?
- How to transform object of objects to object of array of objects with JavaScript?
- Convert array of object to array of array in JavaScript
- Flat a JavaScript array of objects into an object
- JavaScript: create an array of JSON objects from linking two arrays

Advertisements