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

140
Vistas
¿Cómo obtener los datos promedio con la función de matriz?

Soy un novato para javascript. Tengo dos variables, una es Ax2 y la otra es Ay2, se actualizarán constantemente, quiero obtener el promedio de sus últimos 10 perfiles actualizados, así que probé esto, pero no funcionó, ¿alguien puede ayudarme?

 var Ax2 = 0 var Ay2 = 0 connection.on("ReceiveMessage", function (target) { Ax2 = `${target} ` document.getElementById('Ax2').textContent = Ax2 ; }); connection.on("ReceiveMessage2", function (target2) { Ay2 = `${target2} ` * -1 document.getElementById('Ay2').textContent = Ay2 ; }); let arr1 = new Array(10); let arr2 = new Array(10); function ArrayAvg1(arr1) { var i = -1, summ = 0, ArrayLen1 = arr1.length; while (i < ArrayLen1) { arr1.push(Ax2) summ = summ + arr1[i++]; } return summ / ArrayLen1; } function ArrayAvg2(arr2) { var i = -1, summ = 0, ArrayLen2 = arr2.length; while (i < ArrayLen2) { arr2.push(Ay2) summ = summ + arr2[i++]; } return summ / ArrayLen2; } var AX_after_correction = Ax2 - ArrayAvg1(arr1) var AY_after_correction = Ay2 - ArrayAvg2(arr2) var AX_after_correction = document.getElementById('AX_after_correction') var AY_after_correction = document.getElementById('AY_after_correction')
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Prueba este código a continuación:

 var Ax2 = 0; var Ay2 = 0; let arrR = new Array(10); connection.on("ReceiveMessage", function (;target) { Ax2 = `${target} ` document.getElementById('Ax2').textContent = Ax2 ; }); connection.on("ReceiveMessage2", function (target2) { Ay2 = `${target2} ` * -1 document.getElementById('Ay2').textContent = Ay2 ; }); function ArrayAvg1(arr, val) { arr.push(val) let count = 0 let numOr0 = n => isNaN(n) ? 0 : n arr.forEach(num => (typeof num) && count++) let sum = arr.reduce((a, b) => numOr0(a) + numOr0(b)) return sum / count; } var AX_after_correction = Ax2 - ArrayAvg1(arrR, Ax2) var AY_after_correction = Ay2 - ArrayAvg1(arrR, Ay2) var AX_after_correction = document.getElementById('AX_after_correction') var AY_after_correction = document.getElementById('AY_after_correction')

Pero creo que arrR devolverá un new Array(10) cada vez que vuelva a ejecutar el código.

¿Qué marco usas para construir la aplicación?

about 4 years ago · Juan Pablo Isaza Denunciar

0

No estoy seguro de lo que estás tratando de lograr, pero:

  • debe prestar atención a ladenominación de sus variables , ya que se vuelve difícil de leer y, por lo tanto, de comprender
  • intente no saturar su ejemplo con información innecesaria: tiene ArrayAvg1 y 2 haciendo lo mismo, la parte de 'conexión' tampoco es necesaria, etc.
  • debe evitar usar var e ir por let o const ,

Dicho esto, suponiendo que tiene una matriz de números, hay algunas formas de obtener el valor promedio .

AFAIC, me quedaría con este :

 const average = (array) => array.reduce((a, b) => a + b) / array.length;

La función array.reduce() puede ser difícil de entender al principio... Aquí, está recorriendo la matriz y sumando cada valor actual b en el acumulador a , y devuelve la suma.

 const average = (array) => ...;

Esta notación le permite declarar una función de flecha que toma una matriz como parámetro.

array.reduce((a, b) => a + b) / array.length básicamente devuelve la suma de los valores de la matriz dividida por la longitud de la matriz.

En cuanto a lo que estás haciendo

 var Ax2 = 0 // updated on an event let arr1 = new Array(10); function ArrayAvg1(arr1) { var i = -1, summ = 0, ArrayLen1 = arr1.length; while (i < ArrayLen1) { arr1.push(Ax2) // you're pushing Ax2 10 times ? summ = summ + arr1[i++]; // this is weird } return summ / ArrayLen1; }

Como realmente no entiendo cuál es tu objetivo, no puedo ayudarte más.

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