#Hola a tod@s! Me gustaría compartir
1 messages · Page 1 of 1 (latest)
En Javascript es posible usar variables de distinto tipo en un mismo contexto, por ejemplo:
let a = 1 + true // a valdrá 2
let b = 1 + false // b valdrá 1
let c = +true // c valdrá 1
let d = +false // d valdrá 0
¿Y como podemos usar esto para reducir la complejidad de cara al Midudetector? Pues bien, imaginemos que queremos sumar 1 a una variable cuando se cumpla una condición:
// Normalmente haríamos:
if (value === 'a') {
b++
}
// Pero también es posible hacer:
b += +(value === 'a')
El resultado es exactamente el mismo pero esto no aumenta la complejidad y Midu dormirá tranquilo ;P
Por ejemplo, en cierto reto Santa solo podrá avanzar cuando no tenga un | justo delante:
// Podríamos hacer:
if (road[pos + 1] !== '|') {
pos++
}
// Pero también es posible hacer:
pos += +(road[pos + 1] !== '|')
// ☝️ este más da un contexto numérico a la expresión
// por lo que el siguiente valor será convertido a número
// si fuera posible.
// Es lo mismo que:
pos += +true // pos += 1
pos += +false // pos += 0
Incluso podemos usar esto para seleccionar uno de dos valores:
// En lugar de
const use = i === 'b' ? value2 : value1
// Es posible hacer
const values = [
value1, // Indice 0
value2 // Indice 1
]
const use = values[+(i === 'b')]
// Esto seleccionará el value2 siempre que i sea igual 'b'
// si es diferente seleccionará el valor1
Briconsejo: Esto está bien para el AdventJS (que me encanta ❤️) pero desaconsejo fuertemente usar estos "trucos" en un entorno profesional:
// Es mejor
if (condicion) {
p++
}
// que esto
p += +condicion
wa, asombroso saber esto. 👏👏👏
Buenisimo este dato 🫡
Muchas gracias!!!!!
Muy útil, gracias 🙌
Gracias!