JS Поиск большей переменной
Мне в JS нужно автоматически найти большую переменную из 8 для процесора в игре, я сделал муторный код с усл, операторами для 3, и понял что это слишком большой и муторный код. Пример кода:
var a = 0;
var b = 0;
var c = 0;
while(true) {
a = in(0); \\беру значение из игры
b = in(1); \\беру значение из игры
c = in(2); \\беру значение из игры
if (a > b) {
if (a > c) {
out (3, a); \\ Вывожу значение в игру
} else if (c > b) {
out (5, c); \\ Вывожу значение в игру
} else if (b > a) {
if (b > c) {
out (4, b); \\ Вывожу значение в игру
} else if (c > a) {
out (5, c); \\ Вывожу значение в игру
}
}
}
Вроде как этот код вполне рабочий, но для 8 переменных такой способ не подойдёт. Если вы знаете другой способ, жду ваших ответов.
Ответы (3 шт):
Автор решения: meine
→ Ссылка
var a = 4;
var b = 9;
var c = 2;
const array = [a, b, c];
console.log(Math.max.apply(null, array));
Автор решения: Vadim
→ Ссылка
Ну либо так, тут хэндлить проще, но на 3-5% slower (тестил в равных условиях)
let a = 4;
let b = 9;
let c = 2;
const arr = [a, b, c];
let biggest = 0;
for(let x of arr){
if(x > biggest)biggest = x;
}
console.log(biggest);
Автор решения: Roman Onofreichuk
→ Ссылка
Если a b c - числа
const array = [a, b, c];
let x = Math.max.apply(null, array));
switch (x) {
case a:
out (3, a);
break;
case b:
out (4, b);
break;
case c:
out (5, c);
break;
}
Если a b c - булевы выражения true\false
if((a > b && b >= c) || (a > c && c>= b)){
out (3, a);}
else if((b > a && a >= c) || (b > c && c>= a)){
out (4, b);}
else if((c > b && b >= a) || (c > a && a>= b)){
out (5, c);}