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

Tell us what’s happening:

i am trying to find the get mean:
const evenListMedian = getMean[[(testArr2[testArr2.length / 2],testArr2[(testArr2.length / 2) - 1])]] ;

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 testArr1 = [1, 2, 3, 4, 5];
const testArr2 = [1, 2, 3, 4, 5, 6];
const isEven = testArr2.length % 2 === 0;
console.log(isEven);
const oddListMedian = testArr1[Math.floor(testArr1.length / 2)];
console.log(oddListMedian);
 / **const evenListMedian = getMean[[(testArr2[testArr2.length / 2],testArr2[(testArr2.length / 2) - 1])]] ; / the problem is in green 
console.log(evenListMedian);

// User Editable Region

const getMedian = (array) => {
  const sorted = array.sort((a, b) => a - b);
}

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/133.0.0.0 Safari/537.36 Edg/133.0.0.0

Challenge Information:

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

You used square brackets [] instead of parentheses () when calling the function.
Also, in the array you’re passing, why did you enclose the items in parentheses ()
Like [ (item1, item2) ] ?

in the example they used the brackets so i thought i should use them

Hello everyone, I wanted to add a question to this lesson. Can I implement this step using an arrow function? Assign an arrow function with parameters fmn and smn to the Evenlistmedian variable. Assign logic to these parameters to obtain medians and insert these arguments into the getmean function. Here is an example of my code:
const evenlistmedian = (fnm, snm ) => {
const fnm = testArr2[testArr2.length / 2];
const snm = testArr2[testArr2.length / 2 - 1];
getMean ([ fnm, snm] );
console.log(evenlistmedian );}
Would such a decision also be correct?

They were used with the array itself and that’s correct, but you use () when calling a function.

let array = [1, 2, 3]
function getFirstItem(arr){
 return arr[0];
}

console.log(getFirstItem(array));   // OUTPUT: 1

[] for indexing an array.
() for calling a function.

do you mean like this: const evenListMedian = getMean((testArr2[testArr2.length / 2],[(testArr2.length / 2) - 1]));

Can you explain the changes you made and the reasons behind them?

you said i should use parentheses round brackets in naming functions for example
getmean() then i added an parentheses round bracket as an argument

So, you mean that when calling a function that takes an argument like an array should be like getMean(([1, 2, 3])) ?

hi @sushworkpost you will do better opening your own topic to ask your own questions

ok, i think i get it ,hence i am in the wrong so i tried this : const evenListMedian = getMean([testArr2[testArr2.length / 2],testArr2[(testArr2.length / 2) - 1]]);
and it worked

1 Like

It is.

Because when calling a function, you should use () no matter it takes arguments or not.
However, if it takes arguments, you can pass them directly within the same () and you use commas , for separating between different arguments without the need to use () for each argument.

let name = "kimkiara520";
let language = "JavaScript";

function greeting(name, language){
 console.log("Welcome, " + name);
 console.log("You're learning " + language);
}

greeting(name, language);

/* OUTPUT
Welcome, kimkiara520
You're learning JavaScript
*/
1 Like

thanks you actually helped me to think

1 Like