javascript - JavaScript 中使用 switch 和 if else 语句的不同输出

标签 javascript if-statement

我是学习编程的初学者,更具体地说是 JavaScript。我在学习编码时遇到一个小问题。当我使用 switch 语句来解决一个问题时,它会产生正确的输出。

var dateNow = 3;
var dateSuffix;

switch (dateNow) {
  case 1:
  case 21:
  case 31:
    dateSuffix = "st";
    break;
  case 2:
  case 22:
    dateSuffix = "nd";
    break;
  case 3:
  case 23:
    dateSuffix = "rd";
    break;
  default:
    dateSuffix = "th";
    break;
}

console.log("Today is the " + dateNow + dateSuffix + " day.");
    

但是当我对 if else 语句执行相同操作时,输出是错误的。

var dateNow = 3;
var dateSuffix;

if (dateNow == 1 || 21 || 31) {
  dateSuffix = "st";
} else if (dateNow == 2 || 22) {
  dateSuffix = "nd";
} else if (dateNow == 3 || 23) {
  dateSuffix = "rd";
} else {
  dateSuffix = "th";
}

console.log("Today is " + dateNow + dateSuffix + " day of the month...");

有人可以指出我的 if 语句的问题吗?

最佳答案

你不能使用dateNow == 1 || 21 || 31 .

您需要使用[1,21,31].includes(dateNow)

dateNow == 1 ||现在日期 == 21 ||现在日期 == 31

var dateNow = 3;
var dateSuffix;

if ([1,21,31].includes(dateNow)) {
  dateSuffix = "st";
} else if ([2,22].includes(dateNow)) {
  dateSuffix = "nd";
} else if ([3,23].includes(dateNow)) {
  dateSuffix = "rd";
} else {
  dateSuffix = "th";
}

console.log("Today is " + dateNow + dateSuffix + " day of the month...");

关于javascript - JavaScript 中使用 switch 和 if else 语句的不同输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851130/

相关文章:

php - Controller where 子句中的 Laravel 条件

javascript - 如果 - 否则 - 本地存储不起作用/cordova

javascript - 检查 Steam 配置文件 url 是否有效

javascript - Jquery id 选择器变量无法绑定(bind)到 onchange

javascript - 无法读取 admin.firestore.collection.doc.get.then.doc 处未定义的属性 'firstName'

javascript - select2 multiple 防止其他输入在输入时提交表单

javascript - typescript :私有(private)成员突然未定义

c - 未遵循 "if"上的语句

mysql - 根据值更新表而不重叠字段名称

基于用户输入的 JavaScript 乘法表