-3

For example, I have the following array of objects:

[{id:1, name: Hana, age: 30}, {id:2, name: Sana, age: 20}, {id:3, name: Kana, age: 30}]

I want to convert it to an object of objects as following:

{0:{id:1, name: Hana, age: 30}, 1:{id:2, name: Sana, age: 20}, 2:{id:3, name: Kana, age: 30}}
emma
  • 11
  • 3

3 Answers3

2

Using Object's pre built method assign you can achieve this.

Object.assign({}, yourObject);

No need to iterate through the Array unnecessary.

Swanand Taware
  • 723
  • 2
  • 7
  • 32
1

You can easily achieve the result, using a simple map function and store the result in an object as a key:value pair

const data = [{id:1, name: 'Hana', age: 30}, {id:2, name: 'Sana', age: 20}, {id:3, name: 'Kana', age: 30}]

const resultObj = {}

data.map((obj,index) =>  resultObj[index] = obj)

console.log(resultObj)
karthik
  • 528
  • 4
  • 19
0

You can map that array and get its unique value (in this case i have taken id as key) then map it according you want to display array.

Here is an example to do that.

var arr = [{
  id: 1,
  name: 'Hana',
  age: 30
}, {
  id: 2,
  name: 'Sana',
  age: 20
}, {
  id: 3,
  name: 'Kana',
  age: 30
}]


var mapped = arr.map(item => ({
  [item.id]: item
}));
var newObj = Object.assign({}, ...mapped);
console.log(newObj);
Parth Raval
  • 4,097
  • 3
  • 23
  • 36