Me he preguntado cómo puedo optimizar las condiciones para que funcione lo suficientemente flexible como para devolver un índice que tiene una limitación de 3 índice
if(val === 0) return 0; if (val === -90) return 3; if (val === -180) return 2; if (val === -270) return 1; if (val === -360) return 0; if (val === -450) return 3; if(val === 0) return 0; if (val === 90) return 1; if (val === 180) return 2; if (val === 270) return 3; if (val === 360) return 0; if (val === 450) return 1;y así
Me pregunto cómo hacer una función que si un usuario incrementa en 90, los retornos deben incrementarse con un límite de 3 y luego de 3 devolverá 0 índice
function f(x) { let z = x / 90; let y = z % 4; return y < 0 ? 4 + y : y; } for(let i = -90 * 10; i <= 90 * 10; i = i + 90) { console.log(`x = ${i} => result => ${f(i)}`); } function f(x) { return ((x / 90) % 4 + 4) % 4; } for(let i = -90 * 10; i <= 90 * 10; i = i + 90) { console.log(`x = ${i} => result => ${f(i)}`); }primero debe obtener la entrada mínima, luego agregarle 360.
val = 360+val; if(val % 360 === 90){ return 1 } if(val % 360 === 180){ return 2 } if(val % 360 === 270){ return 3 } if(val % 360 === 0){ return 0 }Puedes intentar dividir por 90 para los números positivos y para los números negativos sumar 360 primero y luego dividir por 90.