Valor RMS de array en JavaScript

El valor RMS (raíz cuadrática media) de una distribución es la raíz cuadrada de la media de los cuadrados de los elementos. La fórmula para encontrar el valor RMS se da a continuación:

 RMS = \sqrt{\frac{{a_{1}}^{2} + {a_{2}}^{2} + {a_{3}}^{2} + {a_{4}}^{2} + ... + {a_{N}}^{2}}{N}}

Para calcular el valor RMS de una array, primero debe elevar al cuadrado todos los elementos de la array. Luego, tome la media de esos valores al cuadrado sumándolos y dividiéndolos por el número de elementos y finalmente saque la raíz cuadrada de ese número.

Ejemplo:

<script>
  
let CalculateRMS = function (arr) {
  
    // Map will return another array with each 
    // element corresponding to the elements of
    // the original array mapped according to
    // some relation
    let Squares = arr.map((val) => (val*val));
  
    // Function reduce the array to a value
    // Here, all the elements gets added to the first
    // element which acted as the accumulator initially.
    let Sum = Squares.reduce((acum, val) => (acum + val));
  
    Mean = Sum/arr.length;
    return Math.sqrt(Mean);
}
  
let arr = [5, 9, 3, -7, -4];
  
let Rms = CalculateRMS(arr);
  
document.write(Rms);
</script>                    

Producción:

6

Ahora el script anterior se convirtió en un script de una sola línea. Para escribir la secuencia de comandos anterior en una sola línea, primero convierta el arr en otra array de cuadrados usando la función Map que devuelve una array. Ahora aplique reduce en esa array directamente, lo que devolverá un valor único (suma de todos los cuadrados). Suma del cuadrado del número dividido por el número de elementos y obtiene la raíz cuadrada. Producirá valor RMS.

Ejemplo:

<script>
let CalculateRMS = (arr) => Math.sqrt(
            arr
                .map( val => (val * val))
                .reduce((acum, val) => acum + val)
            /arr.length
);
  
// The above can be written without any 
// line breaks in between as a single-line.
// For the sake of easy 
// understanding it is written like that.
  
let arr = [5, 9, 3, -7, -4];
let RMS = CalculateRMS(arr);
document.write(RMS);
</script>                    

Producción:

6

Beneficios de escribir funciones de una línea
Menos código requerirá menos memoria, por lo que cualquier navegador web tardará menos en cargar el script con menos memoria. Además, el navegador muestra la página web ejecutando el código línea por línea, por lo que cualquier operación en el sitio web que involucre funciones de una línea responderá mucho más rápido en comparación con las funciones normales.

Publicación traducida automáticamente

Artículo escrito por imdhruvgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *