如何知道在 Math.max() 之后包含最大数的变量的名称

Ger*_*era 6 javascript

假设我有以下变量:

var num1 = 48;
var num2 = 420;
var num3 = 39;
Run Code Online (Sandbox Code Playgroud)

我想知道最大值,为此我使用:

var max = Math.max(num1, num2, num3);
Run Code Online (Sandbox Code Playgroud)

有没有办法知道 num2 是最大数字?这个例子只有 3 个变量,但假设我有 20 或 500。我需要以最有效的方式知道最大值及其变量名称。

Joã*_*ira 10

您无法知道变量名,因为变量名没有传递给 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`)
Run Code Online (Sandbox Code Playgroud)

有对象

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)
Run Code Online (Sandbox Code Playgroud)