scrimba
Note at 1:51
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Note at 1:51
AboutCommentsNotes
Note at 1:51
Expand for more info
index.js
run
preview
console
const btn = document.getElementById("button")
btn.addEventListener('click', onButtonClick)
const outputContainer = document.getElementById('output-container')

const people = ["Alice", "Bob", "Carly", "Dan", "Ed", "Ferdinand", "Ginny"]
let secretSantaPairs = {}

function generateSecretSantaPairs(participantsList) {
//Your code here
// let secretSantaPairs = {}

for (let i = 0; i < participantsList.length; i++) {
//creating a copy of the array to avoid modifying the original
let allParticipants = [...participantsList]
console.log("allParticipants: " + allParticipants)

//removing the person that was paired with Santa, but returning the array, not the person
//slice(0, i) captures elements before the current participant
//slice(i + 1) captures elements after the current participant
let remainingParticipants = allParticipants.slice(0, i).concat(allParticipants.slice(i + 1))
// storing (for my sake), logging the participant that was paired w/Santa / removed from the array
let removedParticipant = allParticipants[i];
console.log("remainingParticipants: " + remainingParticipants)
console.log("selected participant for Santa: " + removedParticipant)

let randomIndex = Math.floor(Math.random() * remainingParticipants.length)
let selectedSanta = remainingParticipants[randomIndex]
console.log("selectedSanta: " + selectedSanta)

secretSantaPairs[participantsList[i]] = selectedSanta
console.log("selectedSanta in object: " + selectedSanta)
}
return secretSantaPairs
}

function onButtonClick() {
generateSecretSantaPairs(people)
outputContainer.innerHTML = '' //clear

//creating a new paragraph for each key-value pair in the object
for (const [key, value] of Object.entries(secretSantaPairs)) {
const paragraph = document.createElement("p")
paragraph.textContent = `${key} is the Secret Santa for ${value}`
outputContainer.appendChild(paragraph)
}
}




// console.log(generateSecretSantaPairs(people))
/**
Example output:
{
Alice: "Dan",
Bob: "Ferdinand",
Carly: "Ed",
Dan: "Alice",
Ed: "Ginny",
Ferdinand: "Bob",
Ginny: "Carly"
}
*/
Console
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Alice"
,
"selectedSanta: Bob"
,
"selectedSanta in object: Bob"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Bob"
,
"selectedSanta: Carly"
,
"selectedSanta in object: Carly"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Carly"
,
"selectedSanta: Ferdinand"
,
"selectedSanta in object: Ferdinand"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Dan"
,
"selectedSanta: Bob"
,
"selectedSanta in object: Bob"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ferdinand,Ginny"
,
"selected participant for Santa: Ed"
,
"selectedSanta: Ginny"
,
"selectedSanta in object: Ginny"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ginny"
,
"selected participant for Santa: Ferdinand"
,
"selectedSanta: Carly"
,
"selectedSanta in object: Carly"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand"
,
"selected participant for Santa: Ginny"
,
"selectedSanta: Carly"
,
"selectedSanta in object: Carly"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Alice"
,
"selectedSanta: Ed"
,
"selectedSanta in object: Ed"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Bob"
,
"selectedSanta: Carly"
,
"selectedSanta in object: Carly"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Carly"
,
"selectedSanta: Dan"
,
"selectedSanta in object: Dan"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Dan"
,
"selectedSanta: Bob"
,
"selectedSanta in object: Bob"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ferdinand,Ginny"
,
"selected participant for Santa: Ed"
,
"selectedSanta: Dan"
,
"selectedSanta in object: Dan"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ginny"
,
"selected participant for Santa: Ferdinand"
,
"selectedSanta: Ginny"
,
"selectedSanta in object: Ginny"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand"
,
"selected participant for Santa: Ginny"
,
"selectedSanta: Alice"
,
"selectedSanta in object: Alice"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Alice"
,
"selectedSanta: Bob"
,
"selectedSanta in object: Bob"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Bob"
,
"selectedSanta: Ginny"
,
"selectedSanta in object: Ginny"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Carly"
,
"selectedSanta: Ferdinand"
,
"selectedSanta in object: Ferdinand"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Dan"
,
"selectedSanta: Ed"
,
"selectedSanta in object: Ed"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ferdinand,Ginny"
,
"selected participant for Santa: Ed"
,
"selectedSanta: Ferdinand"
,
"selectedSanta in object: Ferdinand"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ginny"
,
"selected participant for Santa: Ferdinand"
,
"selectedSanta: Dan"
,
"selectedSanta in object: Dan"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand"
,
"selected participant for Santa: Ginny"
,
"selectedSanta: Ferdinand"
,
"selectedSanta in object: Ferdinand"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Alice"
,
"selectedSanta: Dan"
,
"selectedSanta in object: Dan"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Carly,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Bob"
,
"selectedSanta: Carly"
,
"selectedSanta in object: Carly"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Dan,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Carly"
,
"selectedSanta: Alice"
,
"selectedSanta in object: Alice"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Ed,Ferdinand,Ginny"
,
"selected participant for Santa: Dan"
,
"selectedSanta: Ferdinand"
,
"selectedSanta in object: Ferdinand"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ferdinand,Ginny"
,
"selected participant for Santa: Ed"
,
"selectedSanta: Dan"
,
"selectedSanta in object: Dan"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ginny"
,
"selected participant for Santa: Ferdinand"
,
"selectedSanta: Ed"
,
"selectedSanta in object: Ed"
,
"allParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand,Ginny"
,
"remainingParticipants: Alice,Bob,Carly,Dan,Ed,Ferdinand"
,
"selected participant for Santa: Ginny"
,
"selectedSanta: Ferdinand"
,
"selectedSanta in object: Ferdinand"
,
/index.html
LIVE