【问题标题】:How would I write this ternary operation as a conditional statement?我如何将这个三元运算写成条件语句?
【发布时间】:2018-02-28 12:57:27
【问题描述】:

您好,我想知道如何将以下三元运算编写为常规条件语句。如果有人可以让我知道,将不胜感激,这里是代码:

h1.textContent = "Time : " + (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") + ":" + (seconds > 9 ? seconds : "0" + seconds);

【问题讨论】:

  • 你需要两个 if 语句,每个一个
  • 顺便说一句......我会做('0' + minutes).substr(-2)并使用三元或条件语句来完成:p
  • 你能告诉我这在实践中会是什么样子吗,我是 javascript 新手,想了解更多关于三元运算的信息
  • 但是...您使用的是三元运算符...您需要了解“条件语句”,不是吗? if (condition) { code to run when condition is true } else { code to run when condition is false }
  • 是的,我理解基本的javascript很好,我只是想学习如何构造一个三元运算。

标签: javascript conditional ternary-operator


【解决方案1】:

会是这样的:

var text = "Time : ";
if (minutes){
    if (minutes > 9){
        text += minutes;
    }
    else{
        text += "0" + minutes;
    }
}
else{
    text += "00";
}
text += ":";
if (seconds > 9){
    text += seconds;
}
else{
    text += "0" + seconds;
}
h1.textContent = text;

就个人而言,我宁愿坚持使用三元组

【讨论】:

  • 感谢这有很大帮助!我只是想更多地了解三元运算及其工作原理等。
  • 它们很简单。三元组基本上是一个基于条件返回结果的表达式。您有三个关键组件(因此名称为三元):一个布尔值,如果布尔值为真则返回一个值,如果布尔值为假则返回一个布尔值。像这样:isTrue ? 'yes' : 'no'
【解决方案2】:

一个简单的“条件语句”替代

var minutesS = minutes;
if (minutes < 10) minutesS = '0' + minutes;

var secondsS = seconds;
if (seconds < 10) seconddS = '0' + seconds;

h1.textContent = "Time : " + minutesS + ":" + secondsS;

【讨论】:

  • 这更干净:D
  • 但是你的代码展示了三元运算做得更好
  • 是的,我把它分解成它的意思。在此过程中,我坚信它肯定可以以其他方式重写,因为它基本上是将零添加到低于 10 的值。你的解决方案就是我所做的 XD
  • 是的,这要简单得多,但@Phiter 帮助更多地解释了三元运算的构造
  • 查看有问题的评论,看看我会怎么做@Phiter
【解决方案3】:

你可以使用一个函数和一些字符串方法。

function twoDigits(value) {
    return ('00' + value.toString()).slice(-2);
}


h1.textContent = "Time : " + twoDigits(minutes) + ":" + twoDigits(seconds);

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 2022-01-10
    • 2021-05-17
    • 2012-02-12
    • 2021-09-15
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多