Store unique values and perform set operations
Sets are collections of unique values - no duplicates allowed! Perfect for finding unique ingredients across multiple recipes, removing duplicate items from shopping lists, or tracking which dishes a customer has ordered.
๐ก Real-World Example:
Remove duplicates from shopping list: ["eggs", "milk", "eggs", "bread"] โ Set { "eggs", "milk", "bread" }
const ingredients = new Set();
ingredients.add("flour");
ingredients.add("sugar");
ingredients.add("flour"); // Duplicate - won't be added
console.log(ingredients.size); // 2 (not 3!)
const items = ["egg", "milk", "egg", "bread", "milk"];
const unique = new Set(items);
console.log(unique); // Set { "egg", "milk", "bread" }
console.log([...unique]); // Convert back to array
const pantry = new Set(["flour", "sugar", "salt"]);
console.log(pantry.has("sugar")); // true
pantry.delete("salt");
console.log(pantry.has("salt")); // false
const dishes = new Set(["pasta", "pizza", "salad"]);
for (const dish of dishes) {
console.log(dish);
}
const recipe1 = new Set(["flour", "sugar", "eggs"]);
const recipe2 = new Set(["eggs", "milk", "butter"]);
// Union (combine)
const all = new Set([...recipe1, ...recipe2]);
// Intersection (common items)
const common = [...recipe1].filter(x => recipe2.has(x));
console.log(common); // ["eggs"]
set.add("item");
// Returns the Set
set.has("item");
// Returns true or false
set.delete("item");
// Returns true if deleted
set.clear();
// Removes all elements
Find all unique ingredients across multiple recipes! Practice Set operations like union, intersection, and difference.
Clean up messy ingredient lists by removing duplicates! Practice using Sets to ensure unique values.
Find all unique ingredients across multiple recipes:
Example:
findUniqueIngredients([["flour", "sugar"], ["sugar", "eggs"],
["flour"]])
โ ["eggs", "flour", "sugar"] (sorted alphabetically)
๐ก Hints:
recipes.flat()
new Set(array)
[...set].sort()
Clean up a shopping list by removing duplicates and return statistics:
Example:
removeDuplicates(["egg", "milk", "egg", "bread", "milk",
"egg"])
โ { cleanList: ["egg", "milk", "bread"], duplicatesRemoved: 3 }
๐ก Hints:
[...set]