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

131
Views
JavaScript convierte cadena en operador

Estoy tratando de convertir una representación de cadena de un operador al operador mismo en las comparaciones.


Por ejemplo, algo como

 {obj1} '==' {obj2}

debiera ser:

 {obj1} == {obj2}

O

 {obj1} '!==' {obj2}

debiera ser:

 {obj1} !== {obj2}

Puedo usar eval() , pero eso obliga a que los objetos que se comparan se conviertan en una cadena, lo que hace que las comparaciones === (comprobación de tipo estricta) sean inútiles.

Por ejemplo, en el siguiente ejemplo, eval daría resultados incorrectos:

 const obj = "5" const obj2 = 5 const operator = '==='; eval(`console.log(${obj} ${operator} ${obj2})`) //outputs true, incorrect (obj is of type string, obj2 is of type number) console.log(obj === obj2) //outputs false, correct

¿Cómo debo abordar esto?


posible enfoque

Una forma que se me ocurrió es simplemente pasar por la escalera if else y dejar que js maneje la comparación en lugar de analizar el operador de comparación.

Algo como

 if(condition === '!=='){ return before_OrderRequest.Id !== after_OrderRequest.Id }else if (condition === '==='){ return before_OrderRequest.Id === after_OrderRequest.Id } //...more if statements
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede definir un objeto con la representación de cadena de operadores como propiedades que devuelven una función de flecha realizando la comparación correspondiente.

 const compare = { '==': (a, b) => a == b, '!=': (a, b) => a != b, '===' : (a, b) => a === b, '!==' : (a, b) => a !== b } const obj1 = 1; const obj2 = 2; console.log(compare['=='](obj1, obj2)) console.log(compare['!='](obj1, obj2)) console.log(compare['==='](obj1, obj2)) console.log(compare['!=='](obj1, obj2))

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!