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

137
Views
¿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 answers
Answer question

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 Report

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 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!