Skip to content
Related Articles

Related Articles

Improve Article

How to get the standard deviation of an array of numbers using JavaScript ?

  • Last Updated : 15 Jul, 2021

Given an array and the task is to calculate the standard deviation of it.

Example:

Hey geek! The constant emerging technologies in the world of web development always keeps the excitement for this subject through the roof. But before you tackle the big projects, we suggest you start by learning the basics. Kickstart your web development journey by learning JS concepts with our JavaScript Course. Now at it's lowest price ever!

Input:  [1, 2, 3, 4, 5]
Output: 1.4142135623730951

Input:  [23, 4, 6, 457, 65, 7, 45, 8]
Output: 145.13565852332775

Please refer to Mean, Variance, and Standard Deviation for details.

Mean is average of element. Where 0 <= i < n



Mean of arr[0..n-1] = ∑(arr[i]) / n

Variance is the sum of squared differences from the mean divided by a number of elements.

Variance = ∑(arr[i] – mean)2 / n

Standard Deviation is the square root of the variance.

Standard Deviation = variance ^ 1/2

Approach: To calculate the standard deviation first we calculate the mean and then variance and then deviation. To calculate the mean we use Array.reduce() method and calculate the sum of all the array items and then divide the array with the length of the array.

To calculate the variance we use the map() method and mutate the array by assigning (value – mean) ^ 2 to every array item, and then we calculate the sum of the array, and then we divide the sum with the length of the array. To calculate the standard deviation we calculate the square root of the array.

Example:

Javascript




<script>
// Javascript program to calculate the standered deviation of an array
function dev(arr){
  // Creating the mean with Array.reduce
  let mean = arr.reduce((acc, curr)=>{
    return acc + curr
  }, 0) / arr.length;
   
  // Assigning (value - mean) ^ 2 to every array item
  arr = arr.map((k)=>{
    return (k - mean) ** 2
  })
   
  // Calculating the sum of updated array
 let sum = arr.reduce((acc, curr)=> acc + curr, 0);
  
 // Calculating the variance
 let variance = sum / arr.length
  
 // Returning the Standered deviation
 return Math.sqrt(sum / arr.length)
}
 
 
console.log(dev([1, 2, 3, 4, 5]))
console.log(dev([23, 4, 6, 457, 65, 7, 45, 8]))
</script>

Output:

1.4142135623730951
145.13565852332775
My Personal Notes arrow_drop_up
Recommended Articles
Page :