#Hola a tod@s! Me gustaría compartir

1 messages · Page 1 of 1 (latest)

blazing axle
#

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
sacred kiln
#

wa, asombroso saber esto. 👏👏👏

subtle lantern
#

Buenisimo este dato 🫡

serene bison
#

Muchas gracias!!!!!

autumn dock
#

Muy útil, gracias 🙌

raven stone
#

Gracias!