如何在React中优化多数组对象条件判断以处理错误?
优化方案:利用数组遍历消除重复逻辑
直接通过数组的some方法一次性完成所有元素的校验,完全消除重复代码,同时逻辑更清晰:
const containtemps = [ { modDate: "2022-09-22T04:48:00.000Z" }, { modDate: null }, { modDate: "2022-09-22T04:5:00.000Z" } ]; // 计算基准时间:当前时间减6小时 const curTime = new Date(); curTime.setHours(curTime.getHours() - 6); const curTimeStamp = curTime.getTime(); // 遍历数组,检查是否存在任一元素满足"modDate对应的时间早于基准时间"的条件 const error = containtemps.some(item => { const modDate = item?.modDate; const modTimeStamp = new Date(modDate).getTime(); // 逻辑和原代码一致:基准时间 <= 元素时间 则为false,否则为true return !(curTimeStamp <= modTimeStamp); }); return !error ? <NotError>notError</NotError> : <Error>error</Error>;
关键优化点:
- 使用
Array.some()方法:只要数组中有一个元素满足回调函数的条件,就会返回true,正好替代原代码中多个temperror变量的或运算逻辑 - 提取基准时间戳:提前计算
curTimeStamp,避免重复调用getTime() - 统一处理逻辑:将每个元素的校验逻辑封装在回调函数中,无需重复写多份相同代码
- 保留边界处理:和原代码逻辑一致,当
modDate为null时,new Date(null).getTime()返回NaN,curTimeStamp <= NaN结果为false,最终判定为错误
内容的提问来源于stack exchange,提问作者user19476497
相关产品推荐
相关产品推荐

