几个对象数组,比较出时间startTime(格式为HH:ss)加上准备时间prepare(分钟)之后,时间最晚的那个,最后返回那个时间startTime加上准备时间prepare的结果,参考数据:a={ prepare:45, startTime:8:00 }; b={ prepare:10, startTime:10:10 },使用moment.js和reduce,
时间: 2024-03-02 15:48:13 浏览: 195
好的,我理解了你的问题。下面是使用 moment.js 和 reduce 方法实现的 JavaScript 代码:
```javascript
const moment = require('moment'); // 引入 moment.js 库
const a = { prepare: 45, startTime: '8:00' };
const b = { prepare: 10, startTime: '10:10' };
const c = { prepare: 30, startTime: '12:30' };
const d = { prepare: 20, startTime: '18:00' };
const e = { prepare: 60, startTime: '22:30' };
const arr = [a, b, c, d, e]; // 定义对象数组
const latestTime = arr.reduce((latest, current) => {
const latestMoment = moment(latest.startTime, 'HH:mm').add(latest.prepare, 'minutes');
const currentMoment = moment(current.startTime, 'HH:mm').add(current.prepare, 'minutes');
return latestMoment.isAfter(currentMoment) ? latest : current;
}); // 使用 reduce 方法比较时间最晚的对象
const result = moment(latestTime.startTime, 'HH:mm').add(latestTime.prepare, 'minutes').format('HH:mm'); // 计算时间并格式化
console.log(result); // 输出结果
```
这段代码中,我们定义了 5 个对象存储时间和准备时间,将它们放入一个数组中。然后使用 reduce 方法比较出时间最晚的对象。在比较过程中,我们使用 moment.js 库将时间和准备时间转换为 moment 对象,方便进行时间的加减和比较。最后,我们将时间加上准备时间并格式化输出结果。
如果你有任何疑问,可以继续问我哦!
阅读全文