Heres one way of doing it. This will set each end date except for the last one. Since there is not a date to calculate it from.
JS Fiddle: http://jsfiddle.net/FGt4B/1/
var periods = [{start: "5/1/2014"}, {start: "5/8/2014"}, {start: "5/15/2014"}],
period, nextPeriod, tempDay
for ( var i = 0, _len = periods.length; i < _len; i++ ) {
period = periods[i]
nextPeriod = periods[i+1]
if ( nextPeriod ) {
tempDay = new Date(nextPeriod.start)
tempDay.setDate(tempDay.getDate() -1)
period.end = tempDay.toLocaleDateString()
}
}
console.log(periods)