Nonzero Numbers es-419 Explainer

Explicación de Números distintos de cero

Objetivo de este acertijo: Presentar el concepto de Truthy y falsy.

Tutorial de la solución: La prueba de una if statement siempre es true o false. Por ejemplo:


let x = 3

if (x === 3) {

console.log('true!')

}

Este código imprimirá 'true!' porque x es igual a 3.

Sin embargo, ¿qué sucede si lo escribimos así?


let x = 3

if (x) {

console.log('true!')

}

Este código también imprimirá 'true!'. ¡Extraño!

Este código funciona porque cada valor en JavaScript es “truthy” o “falsy”.

Se ve confuso, pero es algo más simple de lo que parece.

Solo hay 6 valores falsy en JavaScript. Todo lo demás es truthy. Los 6 valores falsy son:

  1. false: el valor boolean false

  2. 0: el número 0

  3. '': Un string vacío

  4. NaN: que significa “Not a Number” (no es un número), y generalmente es producto de errores matemáticos

  5. undefined: el valor de una variable antes de que se le haya asignado un valor

  6. null: un valor en blanco que se puede asignar a una variable

En este acertijo, se configura un classic for loop con i definido inicialmente en 0 - 3(esta es una solución para la mayoría de los teclados de teléfonos móviles que no permite que los usuarios ingresen números negativos). Ciclará siempre quei < 4eise incrementen en1` con cada iteración.

Dentro del for loop, agrega una if statement. Si i tiene un valor truthy, console.log() imprimirá i. Si i tiene un valor falsy, no se imprimirá.

Cuando se ejecuta el código, cada número de -3 a 3, excepto 0 que se imprimirá en la consola.

Solución del código de ejemplo:


for (let i = 0 - 3; i < 4; i++) {

if (i) {

console.log(i);

}

}

Conceptos de JavaScript: truthy y falsy, if statements, booleans, console.log(), for loops

No hay forma de que vea la solución del ejercicio. Pocos operadores.

2 Likes
If (i){
console.log(0)
console.log(i)
}

Dentro del If Statement debe ir dos console.log()
El 1ro con el valor 0
El segundo con valor i

3 Likes

No entiendo, sé que si pongo cualquier cosa excepto los valores que falsy toma dentro de una if statement, el código se ejecutará, pero por qué
If (i){
Console.log(i)
}
No imprimirá 0 en un for classic? Lo único que ahí entiendo es que solo primira i, al menos quisiera saber cómo es que se relaciona esa if statement con el for classic y no imprime 0

Hola cómo es que se hace este problema ?? No entiendo

Lo resolví el acertijo