Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

123
Views
Piedra, papel o tijera y la comparación !==

Quería intentar usar el !== condicional. ¿Por qué este código registra 'Opción no válida' e indefinido?

 const getUserChoice = userInput => { userInput = userInput.toLowerCase(); if (userInput !== 'rock' || userInput !== 'paper' || userInput !== 'scissors') { console.log('Invalid choice'); } else { return userInput; } }; console.log(getUserChoice('paper'));

Quería probar la instrucción !== en lugar de === if para un juego de piedra, papel o tijera. ¿El problema es la sintaxis o la lógica?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Esta condición siempre será verdadera, independientemente del valor de userInput :

 userInput !== 'rock' || userInput !== 'paper' || userInput !== 'scissors'

Quiere usar && en lugar de || , como esto:

 userInput !== 'rock' && userInput !== 'paper' && userInput !== 'scissors'

De esa manera, solo verá una Invalid choice no válida si userInput no es uno de los tres valores permitidos.

Por último, está viendo undefined porque está registrando el resultado de getUserChoice , pero getUserChoice no devuelve nada cuando se presiona la instrucción if .

about 4 years ago · Juan Pablo Isaza Report

0

Obtiene una Invalid choice debido a la evaluación de cortocircuito . Esto significa que la expresión lógica OR (||) se evalúa de izquierda a derecha y cualquiera de los valores de la izquierda obtiene un valor real, luego el resto no se evaluará.

 userInput !== 'rock' || userInput !== 'paper' || userInput !== 'scissors'

Cuando userInput es igual a paper y ejecuta la condición anterior, el primero obtiene un valor real porque paper y rock no son lo mismo. Entonces, el resto de ellos no serán evaluados (userInput !== 'paper' || userInput !== 'scissors') . Esa condición se vuelve verdadera y registra una invalid choice . Y en la condición en que no devolvió nada, entonces la función getUserChoice devuelve undefined .

about 4 years ago · Juan Pablo Isaza Report

0

Su función no devuelve nada en el camino verdadero si, solo en el camino más.

También el inverso de if(x==="a" || x==="b" || ...) (también conocido como if(!(...)) ) es if(x!=="a" && x!=="b" && ...) necesitas intercambiar || a && y && a || también, no solo === a !== y !== a === .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!