test

by neildcruz19

HTML

<h1>Statistical Calculations</h1>
<table>
  <tr>
    <td>Input Number:</td>
    <td>
      <input type='text' id='input'>
    </td>
  </tr>
  <tr>
    <td colpsan='2'>
      <input type='button' value='Add Number' onClick='addNumber();'>
    </td>
  </tr>
  <tr>
    <td colspan='2'>
      <select id='list' size='5'>
      </select>
    </td>
  </tr>
  <tr>
    <td colpsan='2'>
      <input type='button' value='Calculate!' onClick='getStatistics()'>
    </td>
  </tr>
  <tr>
    <td>Summation:</td>
    <td>
      <input type='text' id='summation' readonly>
    </td>
  </tr>
  <tr>
    <td>Mean:</td>
    <td>
      <input type='text' id='mean' readonly>
    </td>
  </tr>
  <tr>
    <td>Median:</td>
    <td>
      <input type='text' id='median' readonly> </td>
  </tr>
  <tr>
    <td>Mode:</td>
    <td>
      <input type='text' id='mode' readonly>
    </td>
  </tr>
  <tr>
    <td>Max:</td>
    <td>
      <input type='text' id='max' readonly>
    </td>
  </tr>
  <tr>
    <td>Min:</td>
    <td>
      <input type='text' id='min' readonly>
    </td>
  </tr>


  <tr>
    <td>Range:</td>
    <td>
      <input type='text' id='range' readonly>
    </td>
  </tr>
  <tr>
    <td>Variance:</td>
    <td>
      <input type='text' id='variance' readonly>
    </td>
  </tr>
  <tr>
    <td>Standard Deviation:</td>
    <td>
      <input type='text' id='standardDev' readonly>
    </td>
  </tr>


</table>

JavaScript

function findSum(x) {
  var sum = 0;
  for (i = 0; i < x.length; i++) {
    sum = sum + x[i];
  }
  return sum;
};

function findMean(x) {
  return findSum(x) / x.length;
};

function findMedian(x) {
  x.sort(function(a, b) {
    return a - b;
  });

  var half = Math.floor(x.length / 2);

  if (x.length % 2)
    return x[half];
  else
    return (x[half - 1] + x[half]) / 2.0;
}

// Ascending functions for sort
function ascNum(a, b) {
  return a - b;
}

function clip(arg, min, max) {
  return Math.max(min, Math.min(arg, max));
};


function findMode(x) {
  var arrLen = x.length;
  var _arr = x.slice().sort(ascNum);
  var count = 1;
  var maxCount = 0;
  var numMaxCount = 0;
  var mode_arr = [];
  var i;

  for (i = 0; i < arrLen; i++) {
    if (_arr[i] === _arr[i + 1]) {
      count++;
    } else {
      if (count > maxCount) {
        mode_arr = [_arr[i]];
        maxCount = count;
        numMaxCount = 0;
      }
      // are there multiple max counts
      else if (count === maxCount) {
        mode_arr.push(_arr[i]);
        numMaxCount++;
      }
      // resetting count for new value in array
      count = 1;
    }
  }

  return numMaxCount === 0 ? mode_arr[0] : mode_arr;
};

function findRange(x) {
  x.sort(function(a, b) {
    return a - b;
  })
}

function findVariance(x) {
  var mean = findMean(x);
  return findMean(array.map(findSum(sum) {
    return Math.pow(sum - mean, 2);
  }));
},

function(array) {
  return Math.sqrt(findVariance(x));
};

function addNumber() {
	console.log('add');
  var input = document.getElementById('input').value;
  var list = document.getElementById('list');
  var option = document.createElement('OPTION');
  list.options.add(option);
  option.text = input;
};

function getStatistics() {
  var list = new Array();
  var select = document.getElementById('list');
  for (i = 0; i < select.options.length; i++) {
    list[i] = parseInt(select.options[i].text);
  }
  document.getElementById('summation').value = findSum(list);
 ...