javascript - 逻辑运算符和if语句组合

标签 javascript if-statement logical-operators

我正在寻找是否有其他方法可以更干净、更高效地编写此代码。 我的目标是根据一天中的不同时间设置不同的值。

var hour = new Date().getHours();
var user = 'User4';

if (hour >= 4 && hour < 6) {
    user = 'User1';
}
if (hour >= 6 && hour < 13) {
    user = 'User2';
}
if (hour >= 13 && hour < 19) {
    user = 'User3';
}
if (hour >= 19) {
    user = 'User4';
}

我找到了this article在线,但我无法实现逻辑运算符。

let values = {
    a: 1,
    b: 2,
};
let foo = values[ bar ] || 3;

非常感谢您的帮助!谢谢😗

最佳答案

您可以使用else if使代码更短、更清晰

var hour = new Date().getHours();
var user;

if (hour < 4 || hour >= 19) {
  user = 'User4';
} else if (hour < 6) {
  user = 'User1';
} else if (hour < 13) {
  user = 'User2';
} else if (hour < 19) {
  user = 'User3';
}

console.log(user)

使用开关(true)

var hour = new Date().getHours();
var user;

switch(true) {
  case (hour < 4 || 
        hour >= 19): user = 'User4'; break;
  case (hour < 6)  : user = 'User1'; break;
  case (hour < 13) : user = 'User2'; break;
  case (hour < 19) : user = 'User3'; break;
}

console.log(user)

关于javascript - 逻辑运算符和if语句组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59511314/

相关文章:

mysql - 查看最近x天是否没有创建记录

r - R 中 `ifelse` 的更通用版本?

javascript - 将脚本属性(数据变量)传递到 head.js 中?

javascript - 可以在 DOM 加载之前提交表单吗?

javascript - 错误: $injector:modulerr Module Error (my first SPA app)

java - 无法让 charAt(0) 工作

r - 在许多逻辑向量上并行 'or'操作

java - 如果在 Servlet 上始终为 false,则符合逻辑

c - while循环的几个语句

javascript - 如何将 HTML POST 数据转换为 JSON?