How can I use array.reduce
to change the way the content of the array is. I don't want to do any math on the content.
Orinal array:
var myArray = [
{id:1, name:'name01', value:11},
{id:2, name:'name02', value:22},
{id:3, name:'name03', value:33},
{id:4, name:'name04', value:44},
{id:5, name:'name05', value:55}
]
I want it to be changed to :
[
{1:{id:1, name:'name01', value:11}},
{2:{id:2, name:'name02', value:22}},
{3:{id:3, name:'name03', value:33}},
{4:{id:4, name:'name04', value:44}},
{5:{id:5, name:'name05', value:55}}
]
So the id
is popped out of the object
as a key
and the value
it's the entire object
.
Can this be achieved with only array.reduce
without using any for loop
or groupBy
?
You can use
.map()
instead with the ES6 calculated property name, like so:Or if you insist on using
.reduce()
:Alternatively, ES5 Syntax (for clarity since you are trying to learn)