Learn Functional Programming by Building a Spreadsheet - Step 19

I got stuck at step 19. I’ve tried couple of methods but none of them worked.
This is the description:

Step 19

Most spreadsheet programs include built-in functions for calculation.
Declare a sum function that takes a nums parameter, which will be an array of numbers. It should return the result of calling reduce on the array to sum all of the numbers.

This is my method:
const sum = (nums) => nums.reduce((num, acc) => num+acc, 0)

<!-- 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" />
    <title>Functional Programming Spreadsheet</title>
  </head>
  <body>
    <div id="container">
      <div></div>
    </div>
    <script src="./script.js"></script>
  </body>
</html>
/* file: styles.css */
#container {
  display: grid;
  grid-template-columns: 50px repeat(10, 200px);
  grid-template-rows: repeat(11, 30px);
}

.label {
  background-color: lightgray;
  text-align: center;
  vertical-align: middle;
  line-height: 30px;
}
/* file: script.js */

/* User Editable Region */

const sum = (nums) => nums.reduce((num, acc) => num+acc, 0)

/* User Editable Region */


const range = (start, end) => Array(end - start + 1).fill(start).map((element, index) => element + index);
const charRange = (start, end) => range(start.charCodeAt(0), end.charCodeAt(0)).map(code => String.fromCharCode(code));

window.onload = () => {
  const container = document.getElementById("container");
  const createLabel = (name) => {
    const label = document.createElement("div");
    label.className = "label";
    label.textContent = name;
    container.appendChild(label);
  }
  const letters = charRange("A", "J");
  letters.forEach(createLabel);
  range(1, 99).forEach(number => {
    createLabel(number);
    letters.forEach(letter => {
      const input = document.createElement("input");
      input.type = "text";
      input.id = letter + number;
      input.ariaLabel = letter + number;
      container.appendChild(input);
    })
  })
}

Your browser information:

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

Challenge Information:

Learn Functional Programming by Building a Spreadsheet - Step 19

  • List item

Your code is correct. There’s bug in the test that will be fixed when next deployment happens. In the meanwhile you can use one of the following for test to pass:

const sum =(nums) => nums.reduce((num, acc) => num+acc, 0)

const sum = nums  => nums.reduce((num, acc) => num+acc, 0)
4 Likes

Thanks…was stuck on exactly the same issue.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.