目录
Check if a Number is Between Two Numbers in JavaScript
- 检查一个数字是否在两个数字之间
- 使用 Math.max() 和 Math.min() 检查一个数字是否在两个数字之间
- 使用三元运算符检查数字是否在两个数字之间
- 使用 lodash 检查一个数字是否在两个数字之间
检查一个数字是否在两个数字之间
检查一个数字是否在两个数字之间:
- 检查数字是否大于下限。
- 检查数字是否小于较高范围。
- 如果两个条件都满足,则数字介于两个数字之间。
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()
代替。
// ✅ 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
块仅在满足以下两个条件时运行:
- 该数字大于较低的值
- 该数字小于较高的值
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'); }
如果两个条件都满足,则该数字在指定范围内,否则不在指定范围内。
&&
运算符从左到右计算。如果我们语句中的第一个条件if
返回,则运算符短路并且不评估第二个条件。 false
使范围包含在内
如果您需要使low
和high
范围包含在内,请使用>=
和<=
运算符。
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
。
创建一个可重用的函数
如果您必须经常检查一个数字是否介于两个数字之间,请定义一个可重用的函数。
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()
这是一个三步过程:
- 使用该
Math.max()
函数获取两个数字中较大的一个。 - 使用该
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'); }
当您不知道两个数字中哪个数字较大,哪个数字较小时,此方法很有用。
我们使用了Math.max()
获取两个数中较大数的方法和
Math.min()
获取较小数的方法。
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
语句来检查数字是否小于较高范围和是否大于较低范围。
如果两个条件都满足,则数字介于两个数字之间。
定义一个可重用的函数
如果您必须经常这样做,请定义一个可重用的函数。
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
否则返回。
包括较低和较高的范围
如果要包括下限和上限范围,请更改条件以检查小于或等于和大于或等于。
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
永远不会评估条件。
if (1 > 100 && 5 > 1) { }
我们首先检查是否1 > 100
并获得 的值false
,因此&&
运算符短路。
if
仅当两个条件都满足且数字在指定范围内时,该块才会运行。
使用三元运算符检查一个数字是否在两个数字之间
您还可以使用三元运算符来检查一个数字是否介于两个数字之间。
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
方法检查数字是否在特定范围内
。
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
方法采用以下参数:
number
– 要检查的号码。start
– 范围的开始(含)。end
– 范围的末尾(直到,但不包括)。
该lodash.inRange
方法检查数字是否介于start
和 之间,但不包括end
.
console.log(_.inRange(50, 0, 100)); // 👉️ true console.log(_.inRange(300, 0, 100)); // 👉️ false console.log(_.inRange(0, -100, 50)); // 👉️ true
如果end
未指定,则将其设置为start
,start
然后再设置为0
。
如果start
大于end
,则交换参数以支持负范围。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: