Ещё задачка.
"Напишите функцию diff, которая принимает два угла (integer), каждый от 0 до 360, и возвращает наименьшую разницу между ними.
Примеры:
diff(0, 45) === 45; // не 315, а 45, потому что 45 меньше
diff(0, 180) === 180;
diff(0, 190) === 170; // не 190, а 170, потому что 170 меньше
diff(120, 280) === 160;"
Решил так:
const diff = (firstAngle, secondAngle) => {
let minAngle = firstAngle <= secondAngle ? firstAngle : secondAngle;
let maxAngle = minAngle === firstAngle ? secondAngle : firstAngle;
const firstDiff = minAngle + (360 - maxAngle);
const secondDiff = (180 - minAngle) + (maxAngle - 180);
return firstDiff <= secondDiff ? firstDiff : secondDiff;
}