JavaScript - Convert an Array to an Object
Here are some common methods which can be used to convert an array to an object:
1. Using JavaScript Object.assign() method
The first approach is using the Object.assign() method. This method copies the values of all enumerable properties from source objects(one or more) to a target object.
let a = [1, 2, 3, 4];
let obj = Object.assign({}, a);
console.log(JSON.stringify(obj));
Output
{"0":1,"1":2,"2":3,"3":4}
2. Using JavaScript for loop
In this method, we will traverse the array using a JavaScript for loop and assign each array element to the target object.
let a = ['GFG1', 'GFG2', 'GFG3', 'GFG4'];
let rv = {};
for (let i = 0; i < a.length; ++i)
rv[i] = a[i];
console.log(JSON.stringify(rv));
Output
{"0":"GFG1","1":"GFG2","2":"GFG3","3":"GFG4"}
3. Using JavaScript Object.fromEntries() method
The Object.fromEntries() method in JavaScript is a standard built-in object which is used to transform a list of key-value pairs into an object. This method returns a new object whose properties are given by the entries of the iterable.
let a = [['JS', 'JavaScript'], ['GFG', 'GeeksforGeeks']];
let obj = Object.fromEntries(a);
console.log(obj);
Output
{ JS: 'JavaScript', GFG: 'GeeksforGeeks' }
4. Using the Spread Operator
The Spread operator allows an iterable to expand in places where 0+ arguments are expected. It is mostly used in the variable array where there is more than 1 value is expected. It allows us the privilege to obtain a list of parameters from an array.
const a = ["Geeks", "for", "Geeks"];
const obj = {...a};
console.log(obj);
Output
{ '0': 'Geeks', '1': 'for', '2': 'Geeks' }
5. Using forEach
Using the forEach method iterates over the array of key-value pairs. For each pair, the key is used as the object property, and the corresponding value is assigned. This approach dynamically builds an object from the array elements.
const a = ["Geeks", "for", "Geeks"];
const obj = {};
a.forEach((value, index) => obj[index] = value);
console.log(obj);
Output
{ '0': 'Geeks', '1': 'for', '2': 'Geeks' }
6. Using JavaScript reduce Method
The reduce method is a powerful tool for transforming an array into a single value. You can use it to convert an array to an object by iterating over the array and building an object with key-value pairs.
const a = ['Hello', 'World', 'Welcome', 'To', 'JavaScript'];
const obj = a.reduce((acc, current, index) => {
acc[index] = current;
return acc;
}, {});
console.log(JSON.stringify(obj));
Output
{"0":"Hello","1":"World","2":"Welcome","3":"To","4":"JavaScript"}
Conclusion
Converting an array to an object in JavaScript is a simple process, and there are multiple ways to do it. Depending on your needs, you can use methods like reduce(), Object.fromEntries(), or forEach() to convert an array into an object with the desired structure.