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

92
Vistas
objeto de suma de matrices múltiples en el script de la aplicación

estoy usando el script de la aplicación

Tengo matriz de retorno de la API por este código:

 const price= jsonResponce.price.map(obj => [obj[0],obj[1]]);

Dame [[30.56, 1.014], [50.44, 1.019], [10.35, 1.081], [10.34, 1.115], [10.40, 2.006]]

No esta matriz puede tener una matriz de 1000 o grande

Ahora quiero sumar todos los objetos en obj[0] usando este código:

Uso el método para ver la deferencia pero nada funciona.

 var first= []; var second= 0; price.forEach(function(obj){ first+= obj[0]; second+= obj[1]; }); Logger.log(first); Logger.log(second);

Pero dame un resultado así: primero Logger.log(first);

 30.5650.4410.3510.3410.40

segundo Logger.log(second); : este método agrega el número 0 después de cualquier obj

 01.01401.01901.08101.11502.006

Alguna idea para este problema

30.56+50.44+10.35+10.34+10.40 Necesito resultado como: 112.09

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

0

Su código funciona bien para mí, después de correcciones mínimas:

 const price = [[30.56, 1.014], [50.44, 1.019], [10.35, 1.081], [10.34, 1.115], [10.40, 2.006]] var first = 0; // <-- here var second = 0; price.forEach(obj => { first += +obj[0]; // <-- here second += +obj[1]; // <-- here }); console.log(first); // --> 112.09 console.log(second); // --> 6.2349

Puede obtener cuatro dígitos después del punto de esta manera:

 var a = 1.23456789; var b = 1234.56789; var c = 16643.59000000003 const dot1000 = x => Math.round(x*10000)/10000; console.log(dot1000(a)); console.log(dot1000(b)); console.log(dot1000(c));

Otra implementación (con ceros al final)

 var a = 1.23456789 var b = 1234.56789 var c = 16643.59000000003 const dot1000 = x => parseInt(x) + '.' + (x+.00001+'').split('.')[1].slice(0,4) console.log(dot1000(a)) console.log(dot1000(b)) console.log(dot1000(c))

Actualizar

JavaScript moderno (ES2017) puede agregar ceros de esta manera:

 console.log('123'.padEnd(5,'0')); // 12300

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd

about 4 years ago · Juan Pablo Isaza Denunciar

0

numerosEnArray = precio.flat()

let sum = 0 numerosEnArray.forEach( numero => suma += numero)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Usando el método Array.prototype.reduce() , esto se vuelve muy fácil:

 const result = arr.reduce((total, el)=> { return total + el[0] + el[1] // el = [a, b] }, 0) console.log(result) /// 118.325

Déjame saber en los comentarios si esto es lo que quieres o si quieres alguna mejora.

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