Think like a builder
Module 1 / Lesson 3

Read your first useful function

Trace an input through code to its output.

16 minutes

Name the contract

A function is a named operation with inputs and a result. Here, openSessions takes an array of session objects and returns a new array containing sessions with no facilitator. The original array stays unchanged.

Trace one record

For session A, facilitator is an empty string. The comparison evaluates to true, so filter keeps it. For B, facilitator is “Sam”, so filter drops it. Read code using concrete values before reaching for abstract vocabulary.

javascript
const sessions = [
  { id: "A", title: "Skills lab", facilitator: "" },
  { id: "B", title: "Journal club", facilitator: "Sam" }
];
function openSessions(items) {
  return items.filter(item => item.facilitator === "");
}
console.log(openSessions(sessions));