You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将嵌套三元运算符实现的timeConversion函数改写为if-else语句

嵌套三元运算符转等价if-else实现

原时间转换函数的核心是两层嵌套三元判断,逻辑按判断优先级拆解如下:

  • 第一层判断:识别时间是PM时段还是AM时段
    • PM时段分支:判断小时值是否为12
      • 小时为12:小时值保持"12"不变
      • 小时不为12:将小时数值加12转成24小时制
    • AM时段分支:判断小时值是否为12
      • 小时为12:将小时值替换为"00"(对应24小时制的零点)
      • 小时不为12:保持原小时值不变

完全等价的if-else版本代码如下:

function timeConversion(s) {
  const arr = s.slice(0, 8).split(":");

  if (s.indexOf("PM") > -1) {
    if (arr[0] == 12) {
      arr[0] = "12";
    } else {
      arr[0] = Number(arr[0]) + 12;
    }
  } else {
    if (arr[0] == 12) {
      arr[0] = "00";
    } else {
      arr[0] = arr[0];
    }
  }

  let result = arr.join(":");
  console.log(result);
}

改写说明:代码完全保留了原函数的弱相等判断逻辑,没有修改任何分支的赋值规则,和原嵌套三元版本的执行结果完全一致,不存在行为差异。

内容的提问来源于stack exchange,提问作者Shoaib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 02:46:12