I have the following array:
['2020-01-16', '2020-01-17', '2020-01-18']
I need to turn the array above into an object like this:
{
'2020-01-16': {selected: true, marked: true, selectedColor: 'blue'},
'2020-01-17': {selected: true, marked: true, selectedColor: 'blue'},
'2020-01-18': {selected: true, marked: true, selectedColor: 'blue'},
}
Is there a way I can do this?
Sure, using Array.reduce()
, this is a pretty straightforward thing. The accumulator in the reduce function is simply an empty object, and each iteration through reduce, we create a new property with that array item's value as the property name, and define the object literal as the value of that property.
Hope this helps!
const myArray = ['2020-01-16', '2020-01-17', '2020-01-18'];
const myObject = myArray.reduce( (obj, item) => {
obj[item] = {selected: true, marked: true, selectedColor: 'blue'};
return obj;
}, {});
console.log(JSON.stringify(myObject) );