Learn Advanced Array Methods by Building a Statistics Calculator - Step 27

Tell us what’s happening:

SOS, please help me it keeps saying the getMedian function should use sorted array but i have tried everything, the code works, passed the test but i can not continue, already tried logging in safari, opera gx , microsoft edge and nothing. turned off dark mode, tried even in incognito mode. I am getting crazy here.

Your code so far

<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link rel="stylesheet" href="./styles.css" />
    <script src="./script.js"></script>
    <title>Statistics Calculator</title>
  </head>
  <body>
    <h1>Statistics Calculator</h1>
    <p>Enter a list of comma-separated numbers.</p>
    <form onsubmit="calculate(); return false;">
      <label for="numbers">Numbers:</label>
      <input type="text" name="numbers" id="numbers" />
      <button type="submit">Calculate</button>
    </form>
    <div class="results">
      <p>
        The <dfn>mean</dfn> of a list of numbers is the average, calculated by
        taking the sum of all numbers and dividing that by the count of numbers.
      </p>
      <p class="bold">Mean: <span id="mean"></span></p>
      <p>
        The <dfn>median</dfn> of a list of numbers is the number that appears in
        the middle of the list, when sorted from least to greatest.
      </p>
      <p class="bold">Median: <span id="median"></span></p>
      <p>
        The <dfn>mode</dfn> of a list of numbers is the number that appears most
        often in the list.
      </p>
      <p class="bold">Mode: <span id="mode"></span></p>
      <p>
        The <dfn>range</dfn> of a list of numbers is the difference between the
        largest and smallest numbers in the list.
      </p>
      <p class="bold">Range: <span id="range"></span></p>
      <p>
        The <dfn>variance</dfn> of a list of numbers measures how far the values
        are from the mean, on average.
      </p>
      <p class="bold">Variance: <span id="variance"></span></p>
      <p>
        The <dfn>standard deviation</dfn> of a list of numbers is the square
        root of the variance.
      </p>
      <p class="bold">
        Standard Deviation: <span id="standardDeviation"></span>
      </p>
    </div>
  </body>
</html>
/* file: script.js */
const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length;


// User Editable Region

const getMedian = (array) => {
  // Create a sorted copy of the array (without mutating the original)
  const sorted = array.toSorted((a, b) =>{return a - b});

  // Check if the array length is even
  if (sorted.length % 2 === 0) {
     const mid1 = sorted[(sorted.length / 2) - 1];
     const mid2 = sorted[sorted.length / 2];
     return getMean([mid1, mid2]);
  } else {
    // Return the middle number for an odd-length array
    return sorted[Math.floor(sorted.length / 2)];
  }
};

// User Editable Region


const calculate = () => {
  const value = document.querySelector("#numbers").value;
  const array = value.split(/,\s*/g);
  const numbers = array.map(el => Number(el)).filter(el => !isNaN(el));
  
  const mean = getMean(numbers);

  document.querySelector("#mean").textContent = mean;
}
/* file: styles.css */
body {
  margin: 0;
  background-color: rgb(27, 27, 50);
  text-align: center;
  color: #fff;
}

button {
  cursor: pointer;
  background-color: rgb(59, 59, 79);
  border: 3px solid white;
  color: white;
}

input {
  background-color: rgb(10, 10, 35);
  color: white;
  border: 1px solid rgb(59, 59, 79);
}

.bold {
  font-weight: bold;
}

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36

Challenge Information:

Learn Advanced Array Methods by Building a Statistics Calculator - Step 27

Welcome to the forum :wave:

I’m a bit confused here. Are you passing the test and it won’t progress?

Or it’s failing a test and you are getting a hint saying “the getMedian function should use sorted array”?

Can you please provide the exact test feedback you are receiving?

Where in the code did you call the getMedian function?

I am getting this clue, but using console logs and testing it it works, also used chat gpt and works right, I can’t just continue this step, it is not passing through

The step was to finish the function, that’s it. They are just not accepting my code for no reason.

Remove the comments and it should work.

If you understand what the code does and how it works, you’re fine, just try to avoid relying on LLMs like ChatGPT while learning.
It’s better to search online about the issue or ask for help on the forum.

1 Like

You’ve changed some of the starting code, not a good idea.

Review the syntax for a one line arrow function

It worked, thank you :slight_smile: