如何解决如何根据日期计算预订价格
如果此范围内没有日期,如何在下面的代码中添加条件,为costRate分配一个固定值?
function getPrices(allSeasons,checkin,checkout) {
const day = 1000*60*60*24;
return allSeasons.reduce( (totalPrice,season) => {
let daysInSeason = Math.round(
(Math.min(+season.endDate+day,checkout)
- Math.max(season.startDate,checkin)) / day);
return totalPrice + (daysInSeason > 0 && daysInSeason * season.costRate);
},0);
}
const allSeasons = [
{startDate: new Date(2017,1-1,1),endDate: new Date(2017,4-1,30),costRate: 300},{startDate: new Date(2017,5-1,9-1,costRate: 400},10-1,12-1,31),costRate: 500}
],checkin = new Date(2017,checkout = new Date(checkin.getTime() + (48 * 60 * 60 * 1000)),totalPrice = getPrices(allSeasons,checkout);
console.log(totalPrice);
解决方法
我很确定您可以用 daysInSeason * season.costRate
替换 daysInSeason * (season.costRate || VALUE)
。如果 season.costRate
不存在,它将替换为 VALUE
。
RobG 提出了一个很好的观点,我认为我的回答不正确。您想用 totalPrice + (daysInSeason>0? daysInSeason*season.costRate : fixedValue)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。