检查一个数字是否在 JavaScript 中的两个数字之间

目录

Check if a Number is Between Two Numbers in JavaScript

  1. 检查一个数字是否在两个数字之间
  2. 使用 Math.max() 和 Math.min() 检查一个数字是否在两个数字之间
  3. 使用三元运算符检查数字是否在两个数字之间
  4. 使用 lodash 检查一个数字是否在两个数字之间

检查一个数字是否在两个数字之间

检查一个数字是否在两个数字之间:

  1. 检查数字是否大于下限。
  2. 检查数字是否小于较高范围。
  3. 如果两个条件都满足,则数字介于两个数字之间。
索引.js
const num = 50; const low = 30; const high = 150; if (num > low && num < high) { // 👇️ this runs console.log('✅ num is between the two numbers'); } else { console.log('⛔️ num is NOT between the two numbers'); }

如果您不确定这两个数字中哪个是较小的数字是较大的数字,请使用Math.max()Math.min()代替。

索引.js
// ✅ If you aren't sure which of the two numbers is low // and which is high use Math.max() and Math.min() const num = 50; const low = 30; const high = 150; const max = Math.max(low, high); console.log(max); // 👉️ 150 const min = Math.min(low, high); console.log(min); // 👉️ 30 if (num > min && num < max) { // 👇️ this runs console.log('✅ num is between the two numbers'); } else { console.log('⛔️ num is NOT between the two numbers'); }

我们使用
逻辑与 (&&) 运算符
来检查多个条件是否为真。

if块仅在满足以下两个条件时运行:

  • 该数字大于较低的值
  • 该数字小于较高的值
索引.js
const num = 50; const low = 30; const high = 150; if (num > low && num < high) { // 👇️ this runs console.log('✅ num is between the two numbers'); } else { console.log('⛔️ num is NOT between the two numbers'); }

如果两个条件都满足,则该数字在指定范围内,否则不在指定范围内。

逻辑 AND&&运算符从左到右计算。如果我们语句中的第一个条件if返回,则运算符短路并且不评估第二个条件。 false

使范围包含在内

如果您需要使lowhigh范围包含在内,请使用>=<=
运算符。

索引.js
const num = 30; const low = 30; const high = 150; if (num >= low && num <= high) { // 👇️ this runs console.log('✅ num is between the two numbers'); } else { console.log('⛔️ num is NOT between the two numbers'); }

代码示例检查数字是否大于或等于low和小于或等于high

创建一个可重用的函数

如果您必须经常检查一个数字是否介于两个数字之间,请定义一个可重用的函数。

索引.js
function numberInRange(num, low, high) { if (num > low && num < high) { return true; } return false; } console.log(numberInRange(5, 1, 10)); // 👉️ true console.log(numberInRange(50, 1, 10)); // 👉️ false

numberInRange()函数将 3 个数字作为参数,并检查第一个数字是否在其他两个数字之间。

如果您不确定这两个数字中哪个是low,哪个是high,请使用Math.max()Math.min()函数。

检查一个数字是否在两个数字之间使用Math.max()andMath.min()

这是一个三步过程:

  1. 使用该Math.max()函数获取两个数字中较大的一个。
  2. 使用该Math.min()函数获取两个数字中较小的一个。
  3. 检查数字是否高于较低范围且低于较高范围。
索引.js
const num = 50; const low = 30; const high = 150; const max = Math.max(low, high); console.log(max); // 👉️ 150 const min = Math.min(low, high); console.log(min); // 👉️ 30 if (num > min && num < max) { // 👇️ this runs console.log('✅ num is between the two numbers'); } else { console.log('⛔️ num is NOT between the two numbers'); }

当您不知道两个数字中哪个数字较大,哪个数字较小时,此方法很有用。

我们使用了Math.max()获取两个数中较大数的方法和
Math.min()获取较小数的方法。

索引.js
const first = 30; const second = 150; const max = Math.max(first, second); console.log(max); // 👉️ 150 const min = Math.min(first, second); console.log(min); // 👉️ 30

一旦我们有了较低和较高的范围,我们就可以使用if语句来检查数字是否小于较高范围和是否大于较低范围。

如果两个条件都满足,则数字介于两个数字之间。

定义一个可重用的函数

如果您必须经常这样做,请定义一个可重用的函数。

索引.js
function numberInRange(num, first, second) { const max = Math.max(first, second); const min = Math.min(first, second); if (num > min && num < max) { return true; } return false; } console.log(numberInRange(5, 10, 50)); // 👉️ false console.log(numberInRange(5, 1, 50)); // 👉️ true console.log(numberInRange(5, 50, 1)); // 👉️ true

该函数接受一个数字和未绑定到特定顺序的另外两个数字,true如果该数字介于这两个数字之间,则返回,
false否则返回。

包括较低和较高的范围

如果要包括下限和上限范围,请更改条件以检查小于或等于和大于或等于。

索引.js
const num = 30; const low = 30; const high = 150; if (num >= low && num <= high) { // 👇️ this runs console.log('✅ num is between the two numbers'); } else { console.log('⛔️ num is NOT between the two numbers'); }

if语句检查数字是否大于或等于较低范围且小于或等于较高范围。

逻辑 AND&&运算符从左到右计算。如果我们语句中的第一个条件if返回false,则运算符短路并且不评估第二个条件。

例如,在以下if语句中,5 > 1永远不会评估条件。

索引.js
if (1 > 100 && 5 > 1) { }

我们首先检查是否1 > 100并获得 的值false,因此&&运算符短路。

if仅当两个条件都满足且数字在指定范围内时,该块才会运行。

使用三元运算符检查一个数字是否在两个数字之间

您还可以使用三元运算符来检查一个数字是否介于两个数字之间。

索引.js
const num = 50; const low = 30; const high = 150; const inRange = num > low && num < high ? true : false; if (inRange) { // 👇️ this runs console.log('The number is in the specified range'); } else { console.log('The number is NOT in the specified range'); }

三元运算符与语句非常相似if/else

如果问号左边的表达式为真,则运算符返回冒号左边的值,否则返回冒号右边的值。

你可以想象冒号前的值是if块,冒号后的值是else块。

我们首先检查num变量是否大于low,然后检查它是否小于high

如果满足条件,则返回true,否则false返回。

检查一个数字是否在两个数字之间使用lodash

如果您使用该库,您还可以使用lodash.inRangelodash方法检查数字是否在特定范围内

索引.js
import _ from 'lodash'; const num = 50; const low = 30; const high = 150; console.log(_.inRange(num, low, high)); // 👉️ true if (_.inRange(num, low, high)) { // 👇️ this runs console.log('The number is in the range'); } else { console.log('The number is NOT in the range'); }

如果需要安装lodash库,请运行以下命令。

如果需要安装lodash,运行以下命令。

# 👇️ initialize a package.json file npm init -y npm install lodash

lodash.inRange方法采用以下参数:

  1. number– 要检查的号码。
  2. start– 范围的开始(含)。
  3. end– 范围的末尾(直到,但不包括)。

lodash.inRange方法检查数字是否介于start和 之间,但不包括end.

索引.js
console.log(_.inRange(50, 0, 100)); // 👉️ true console.log(_.inRange(300, 0, 100)); // 👉️ false console.log(_.inRange(0, -100, 50)); // 👉️ true

如果end未指定,则将其设置为startstart然后再设置为0

如果start大于end,则交换参数以支持负范围。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: