Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

83
Vistas
Comparando datos de JSON y input.value

Estoy trabajando en un pequeño proyecto de carrito de compras. Tengo productos en JSON.file, también tengo entrada para encontrar el precio de los productos. Estoy usando el método de clase. La pregunta es: ¿son cadenas o números? -> (3) ['35', '35', '35']

 searchItem(data) { let that = this searchBtn.addEventListener('click', function(e) { const input = document.querySelector('.input').value const findItem = data.filter(function(item) { if(item.price === input) { return item } }) // this return all data of product so I filtered only prices bellow const getItem = findItem.map(item => { return item.price }) // this give: (3) ['35', '35', '35'] if(input === getItem) { console.log('same') } else { console.log('try it again') } // this cond. show me : console.log('try it again') // HOW TO GET: console.log('same') e.preventDefault() })
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Siempre puede ejecutar un typeof para averiguar con qué tipos de datos está tratando

por ejemplo

 console.log(typeof getItem[0])

también aquí :

 if(input === getItem) { console.log('same') } else { console.log('try it again') }

está comparando la variable de input con una matriz completa, debe especificar qué elemento de la matriz verificar como:

 if(input === getItem[0]) { console.log('same') } else { console.log('try it again') }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Una respuesta rápida y directa a su pregunta sin el análisis del código. Cualquier valor obtenido de su entrada es una cadena y no números.

Por lo tanto, si los valores del precio que obtiene de los datos son enteros, entonces deberá considerar analizar los valores de la entrada utilizando el método parseInt(). Ejemplo;

 const findItem = data.filter(function(item) { if(item.price === parseInt(input)) { return item } })

Otra cosa es que getItem es una matriz, por lo que la evaluación con un valor particular de la entrada está destinada a fallar. Por lo tanto, use getItem[0] en su lugar y dos "==" en lugar de "===" tal como se sugiere en el comentario.

 function searchItem(data) { let that = this searchBtn.addEventListener('click', function(e) { const input = document.querySelector('.input').value const findItem = data.filter(function(item) { if(item.price == input) { return item } }) // this return all data of product so I filtered only prices bellow const getItem = findItem.map(item => { return item.price }) console.log(getItem); // this give: (3) ['35', '35', '35'] if(input == getItem[0]) { console.log('same') } else { console.log('try it again') } // this cond. show me : console.log('try it again') // HOW TO GET: console.log('same') e.preventDefault() }) }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda