有没有办法缩短多个 || (或)在单个函数中?

gar*_*ard 3 javascript logic function

我有这个功能。效果很好。有没有办法缩短逻辑?

function doNotDuplicateRandomIndex() {
  if (randomIndex === 0 || randomIndex === 1 || randomIndex === 2 || randomIndex ===3) {
    createRandomIndex();
  }
}
Run Code Online (Sandbox Code Playgroud)

我没有尝试过其他任何事情,只是因为我不知道从哪里开始。

Kev*_*our 5

使用小于 ( <)运算符。不客气。

function doNotDuplicateRandomIndex() {
  if (randomIndex < 4) {
    createRandomIndex();
  }
}
Run Code Online (Sandbox Code Playgroud)

事实上,通过从if...else语句中删除括号,这甚至可以更短。

请参阅:JavaScript 中的单行语句中是否需要大括号?

function doNotDuplicateRandomIndex() {
  if (randomIndex < 4) createRandomIndex();
}
Run Code Online (Sandbox Code Playgroud)

疯狂的是,我们可以通过将其转换为箭头函数表达式来使整个函数变得更短。

if...else语句被替换为逻辑 AND ( &&)运算符。

const doNotDuplicateRandomIndex = () => randomIndex < 4 && createRandomIndex();
Run Code Online (Sandbox Code Playgroud)

XMehdi01的回答很好,同样的概念也可以转换为箭头函数表达式。

const doNotDuplicateRandomIndex = () => [0, 1, 2, 3].includes(randomIndex) && createRandomIndex();
Run Code Online (Sandbox Code Playgroud)