Before you start
- Create objects and arrays that describe related data
- Write functions with parameters, return values, and conditionals
- Understand comparisons and basic DOM element creation
Premium JavaScript project
Build a decision helper that models two choices, compares shared factors, handles ties, and renders a recommendation.
A read-only browser preview that displays two options, factor-level winners, and a simple recommendation from your JavaScript data model.
Upgrade to use the editor, browser preview, tests, and saved progress for every stage.
Project guide
Create a browser-based tool that compares two options across shared factors. You’ll model flexible decision data, keep comparison rules in small functions, handle ties explicitly, derive one recommendation, and render the reasoning so the result remains understandable.
Meet the first version of a decision helper: two competing options, shared comparison details, factor winners, and one rendered recommendation.
Start the decision helper by planning the data shape before writing comparison or DOM code.
Create the first JavaScript data model for a decision helper by storing a decision title and two flexible option records.
Fill the decision model with matching numeric attributes so two custom options can be compared in later stages.
Learn how the decision object separates option facts from the rules used to judge those facts.
Add factor records that connect each raw attribute to a readable label and a higher-or-lower comparison rule.
Move from describing decision data to comparing one factor at a time before calculating a full recommendation.
Write a tiny helper that chooses the better of two numbers using a higher-or-lower comparison rule.
Use a factor key to read matching attribute values and return the option name that wins one comparison.
Update the one-factor comparison so equal values are treated as a tie instead of accidentally picking one option.
Loop through every decision factor and return display-friendly comparison results without choosing the final winner yet.
Use the factor-level results to return one overall recommendation without adding DOM code yet.
Pause before the DOM work and connect the completed decision logic to the page-rendering plan.
Use the existing decision data to fill the prepared page with the decision title and two option names.
Display the existing recommendation result on the prepared page without recalculating it in the DOM code.
Render the factor-level result list from getFactorResults so the page shows why the recommendation was made.
Create one render function that refreshes the whole decision page by calling the smaller render helpers.
Close out the project by reviewing the app structure, the read-only rendering boundary, and the under-construction continuation.
Unlock the interactive stages, run the tests, and keep your code saved as you work through the full project.