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

Tell us what’s happening:

Task is to create evenListMedian and oddListMedian.What is wrong?

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: 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;
}
/* file: script.js */
const getMean = (array) => array.reduce((acc, el) => acc + el, 0) / array.length;


// User Editable Region

const getMedian = (array) => {
  const sorted = array.toSorted((a, b) => a - b);
 const isEven= sorted.length % 2===0;
if(isEven=true){const firstMiddle=sorted[Math.floor(sorted.length/2)];
const secondMiddle=sorted[Math.floor(sorted.length/2)-1];
const  evenListMedian=Math.floor((firstMiddle+secondMiddle)/2);
}
if(isEven=false){const oddListMedian=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;
}

Your browser information:

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

Challenge Information:

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

This isn’t working either:

  const sorted = array.toSorted((a, b) => a - b);
 const isEven= sorted.length % 2===0;
if(isEven=true){const firstMiddle=sorted[Math.floor(sorted.length/2)];
const secondMiddle=sorted[Math.floor(sorted.length/2)-1];
const  evenListMedian=Math.floor((firstMiddle+secondMiddle)/2);
return console.log(evenListMedian);
}
if(isEven=false){const oddListMedian=sorted[Math.floor(sorted.length/2)]; return console.log(oddListMedian)}
}```

Also if you need help, refer back to the previous few steps to see how to find the median for an array.

I would suggest reviewing the previous steps and using console.log() to see the values you are getting for variables and expressions so you can debug your code.

This is not working either:

  const sorted = array.toSorted((a, b) => a - b);
 const isEven= sorted.length % 2===0;

 const getmedian=(isEven)=>{
if(isEven=true){const firstMiddle=sorted[Math.floor(sorted.length/2)];
const secondMiddle=sorted[Math.floor(sorted.length/2)-1];
const  evenListMedian=Math.floor((firstMiddle+secondMiddle)/2);
return console.log(evenListMedian);
}
if(isEven=false){const oddListMedian=sorted[Math.floor(sorted.length/2)]; return console.log(oddListMedian)}
}};
console.log(median)

Looks like you will need more logging to determine where the issues are. Did you review the previous steps as suggested?

Please don’t do that. Look at your code and think about the problem. Try to come up with specific questions to ask.

Try to follow the advice you’ve been given and answer any questions that you’ve been asked.