'How do I create an object from array of objects using javascript? [closed]
const arr = [{name:"abc", age:10},{name:"xyz", age:20},{name:"asd", age:12}];
Need output as:
{abc: {age:10}, xyz: {age:20}, asd: {age: 12}}
Solution 1:[1]
This answer only works if all objects have unique names. If there are any duplicates, some of the values WILL be overwritten.
const arr = [{name:"abc", age:10},{name:"xyz", age:20},{name:"asd", age:12}];
const newObject = {};
arr.forEach(item => {
const name = item.name;
delete item.name;
newObject[name] = item;
})
console.log(arr)
console.log(newObject)
Solution 2:[2]
Is this enough for what you want to do?
const arr = [
{ name: "abc", age: 10 },
{ name: "xyz", age: 20 },
{ name: "asd", age: 12 },
];
function transform(data) {
let newObject = {};
for (let element of data) {
newObject = { ...newObject, [element.name]: { age: element.age } };
}
return newObject;
}
console.log(transform(arr));
Solution 3:[3]
const arr = [
{ name: "abc", age: 10 },
{ name: "xyz", age: 20 },
{ name: "asd", age: 12 },
];
const output = {};
arr.forEach((a) => {
output[a.name] = {
age: a.age,
};
});
console.log(output);
Output
{ abc: { age: 10 }, xyz: { age: 20 }, asd: { age: 12 } }
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | mplungjan |
| Solution 2 | ThomasG2201 |
| Solution 3 | Harsh Mangalam |
