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

246
Vistas
Cómo cambiar datos de cadenas JSON a datos de números JSON

Buen día a todos, estoy tratando de obtener el valor numérico de 'review' lo que pasa es que en el JSON lo devuelve como un String y por lo tanto no puedo realizar una suma que hice resultando un valor sin sentido

El objetivo es que, cuando alguien hace un comentario sobre un producto X, los datos se guarden en Firebase en un JSON, el problema es que 'review' se guarda como un String y no como un número

¿Hay alguna manera de tomar este único dato y convertirlo en número?

Esta es la respuesta JSON

 "[{\"review\":\"4\",\"comment\":\"Good product \",\"name\":\"SnowFall\",\"image\":\"https://lh3.googleusercontent.com\",\"method\":\"google\"}]"

Este es mi mecanografiado

 callback(i, totalReviews) { if (!this.render) { this.render = true; let globalRating = 0; let globalReviews = 0; setTimeout(function () { totalReviews.forEach((review, index) => { globalRating += review.length; for (const i in review) { globalReviews += review[i].review; console.log("globalReviews", globalReviews); } }) console.log("Raiting", globalRating); console.log("Reviews", globalReviews); let averageReviews = Math.round(globalReviews / globalRating); let precentage = Math.round(globalReviews * 100 / (globalRating * 5)); $(".globalRating").html(globalRating); $(".percentage").html(precentage); let averageRating = DinamicReviews.fnc(averageReviews); $(".br-theme-fontawesome-stars").html(` <select class="ps-rating reviewsOption" data-read-only="true"></select> `) for (let i = 0; i < averageRating.length; i++) { $(".reviewsOption").append(` <option value="${averageRating[i]}">${i + 1}</option> `) } Rating.fnc(); }, i * 10) } }

Así se guarda en FireBase FireBase RealTime Database

Así es como se ve en mi FrontEnd FrontEnd

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hay una línea en la que asigna el valor .review a la variable globalReviews , ya que está usando += esto concatenará la cadena y ese es el problema al que se enfrenta.

Si cambia esa misma línea a: globalReviews += +review[i].review;

Esto solucionará el error.

La razón por la que funciona agregar un signo + delante de una variable es porque este signo se conoce como Operador Unario Plus , que convierte el valor en un número o, en caso de que el valor almacenado no sea un número, se convertirá siguiendo la documentación del Operador Unario Plus .

Para hacer que este código sea seguro y, por lo tanto, no agregue un posible NaN , puede fallar a 0 usando la siguiente sintaxis globalReviews += +review[i].review || 0;

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