Convert array of objects to plain object using Ramda

matiasfha picture matiasfha · May 5, 2016 · Viewed 11.5k times · Source

How can I convert an array of objects to a plain object? Where each item of the array is an object with only one key:value pair and the key have an unknown name.

I have this

const arrayOfObject = [
    {KEY_A: 'asfas'},
    {KEY_B: 'asas' }
]
let result = {} 
const each = R.forEach((item) => {
   const key = R.keys(item)[0]
    result[key] = item[key]
})
return result

But I dislike that solution because the forEach is using a global variable result and I'm not sure how to avoid side effects here.

Answer

Scott Sauyet picture Scott Sauyet · May 5, 2016

Ramda has a function built-in for this, mergeAll.

const arrayOfObject = [
     {KEY_A: 'asfas'}
    ,{KEY_B: 'asas' }
];

R.mergeAll(arrayOfObject); 
//=> {"KEY_A": "asfas", "KEY_B": "asas"}