前言
最近一个功能需求,给定n个可能为空的日期时间字符串,取其中不为空的最小值。
第一版解决方法(治标不治本)
var a, b;
if (a || b) {
let temp = 0;
if (a) {
if (b) {
temp = +new Date(a) > +new Date(b) ? +new Date(b) : new Date(a);
} else {
temp = +new Date(a)
}
} else {
temp = +new Date(b)
}
...
你的处理逻辑
...
} else {
...
你的处理逻辑
...
}
终极解决方法
let arr = [a, b, c]
let timeStamp = 0
arr.forEach(item => {
if (item) {
if (timeStamp) {
timeStamp = +new Date(item) > timeStamp ? timeStamp : +new Date(item);
} else {
timeStamp = +new Date(item);
}
}
})
...
你的处理逻辑
...
最后
感谢同事提供的思路,当时陷入嵌套地狱的时候,就考虑过一次,没想到解决方法,这次解决了,感谢感谢。