Думаю, это то, что вам нужно.
const dates = [
'2020-06-24',
'2020-06-25',
'2020-06-26',
'2020-06-27',
'2020-06-28',
'2020-06-29',
'2020-06-30',
];
var res= dates.reduce((acc, v, index, arr)=>{
if(index === 0){
acc = [...acc, {[v] : {startingDay: true, marked: true}} ]
}else if(index === arr.length-1){
acc = [...acc, {[v] : {ending: true, marked: true}} ]
}else{
acc = [...acc, {[v] : {selected: true, marked: true}} ]
}
return acc
},[])
console.log(res)
ОБНОВЛЕНИЕ: если вы хотите сохранить результат как объект, а не массив, вы можете сделать это:
const dates = [
'2020-06-24',
'2020-06-25',
'2020-06-26',
'2020-06-27',
'2020-06-28',
'2020-06-29',
'2020-06-30',
];
var res= dates.reduce((acc, v, index, arr)=>{
acc = index === 0? {...acc, ...{[v] : {startingDay: true, marked: true}} }
: index === arr.length-1 ? acc = {...acc, ...{[v] : {ending: true, marked: true}} }
: acc = {...acc, ...{[v] : {selected: true, marked: true}} }
return acc
},{})
console.log(res)