--- id: 64496e9c6d7a2e189948e441 title: Step 27 challengeType: 0 dashedName: step-27 --- # --description-- Now you can start using your spreadsheet functions. Begin by declaring an `update` arrow function. It should take an `event` parameter. # --hints-- You should declare an `update` variable. ```js assert.match(code, /(?:let|const|var)\s+update/); ``` You should use `const` to declare your `update` variable. ```js assert.match(code, /const\s+update/); ``` Your `update` variable should be a function. ```js assert.isFunction(update); ``` Your `update` function should take an `event` parameter. ```js assert.match(code, /const\s+update\s*=\s*(\(\s*event\s*\)|event)\s*=>/); ``` Your `update` function should be empty. ```js assert.match(code, /const\s+update\s*=\s*(\(\s*event\s*\)|event)\s*=>\s*\{\s*\}/); ``` # --seed-- ## --seed-contents-- ```html Functional Programming Spreadsheet
``` ```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; } ``` ```js const isEven = num => num % 2 === 0; const sum = nums => nums.reduce((acc, el) => acc + el, 0); const average = nums => sum(nums) / nums.length; const median = nums => { const sorted = nums.slice().sort((a, b) => a - b); const length = sorted.length; const middle = length / 2 - 1; return isEven(length) ? average([sorted[middle], sorted[middle + 1]]) : sorted[Math.ceil(middle)]; } const spreadsheetFunctions = { sum, average, median } 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); }) }) } --fcc-editable-region-- --fcc-editable-region-- ```