几个对象数组,比较出时间startTime(格式为HH:ss)加上准备时间prepare(分钟)之后,时间最晚的那个,参考数据:a={ prepare:45, startTime:8:00 }; b={ prepare:10, startTime:10:10 },使用moment.js和forEach
时间: 2024-03-01 15:56:29 浏览: 26
使用Moment.js和forEach方法可以更简洁地处理时间。假设有一个对象数组arr,每个对象都有prepare和startTime属性,表示准备时间和开始时间。要比较出加上准备时间后最晚的时间,可以使用如下的JavaScript代码:
```javascript
const moment = require('moment');
let latestObject;
let latestEndTime = moment('00:00', 'HH:mm');
arr.forEach(obj => {
const { prepare, startTime } = obj;
const endTime = moment(startTime, 'HH:mm').add(prepare, 'minutes');
if (endTime.isAfter(latestEndTime)) {
latestEndTime = endTime;
latestObject = obj;
}
});
```
首先引入Moment.js库。然后定义一个变量latestObject表示最晚的对象,初始值为undefined,以及一个变量latestEndTime表示最晚的时间,初始值为0点0分对应的Moment对象。然后使用forEach方法遍历数组,对于每个对象,使用Moment.js将开始时间转换为Moment对象,再调用add方法加上准备时间得到最终结束时间。如果最终结束时间比latestEndTime还晚,就更新latestEndTime和latestObject。最后返回最晚的对象。
这种方法代码量更少,可读性更强。
阅读全文