如何知道在Math.max()之后包含最大数的变量的名称
假设我有以下变量:
var num1 = 48;
var num2 = 420;
var num3 = 39;
我想知道最大值,为此我使用:
var max = Math.max(num1, num2, num3);
有没有办法知道 num2 是最大数字?这个例子只有 3 个变量,但假设我有 20 或 500。我需要以最有效的方式知道最大值及其变量名称。
回答
您无法知道变量名,因为变量名没有传递给 javascript 函数,只有值,但您可以有一个解决方法
使用数组:
var numbers = [48,420,39];
const index = numbers.indexOf(Math.max(...numbers))
console.log(`The max value is the ${index+1}nth value in the array`)
有对象
var num1 = 48;
var num2 = 420;
var num3 = 39;
var numbers = {num1, num2, num3}
const maxVal = Math.max(...Object.values(numbers))
const key = Object.keys(numbers).find(key => numbers[key] === maxVal)
console.log(key, maxVal)