Advertisement
Guest User

Untitled

a guest
Aug 21st, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. function filterOutliers(someArray) {
  2.  
  3. let values, q1, q3, iqr, maxValue, minValue;
  4.  
  5. values = someArray.slice().sort( (a, b) => a - b);//copy array fast and sort
  6.  
  7. if((values.length / 4) % 1 === 0){//find quartiles
  8. q1 = 1/2 * (values[(values.length / 4)] + values[(values.length / 4) + 1]);
  9. q3 = 1/2 * (values[(values.length * (3 / 4))] + values[(values.length * (3 / 4)) + 1]);
  10. } else {
  11. q1 = values[Math.floor(values.length / 4 + 1)];
  12. q3 = values[Math.ceil(values.length * (3 / 4) + 1)];
  13. }
  14.  
  15. iqr = q3 - q1;
  16. maxValue = q3 + iqr * 1.5;
  17. minValue = q1 - iqr * 1.5;
  18.  
  19. return values.filter((x) => (x >= minValue) && (x <= maxValue));
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement