secret-santa-js
Version:
Terminal tool for randomly assigning hashed names to each other.
35 lines (28 loc) • 789 B
JavaScript
const secretSanta = (players) => {
const partners = [...players]
const draw = {}
for (let i = 0; i < players.length; i++) {
let player = players[i]
let index = Math.floor(Math.random() * (partners.length))
let partner = partners[index]
while (partner == player) {
index = Math.floor(Math.random() * (partners.length))
partner = partners[index]
}
partners.splice(index, 1)
draw[player] = btoa(partner)
}
return draw
}
const args = process.argv
args.splice(0, 2)
const draw = secretSanta(args)
for (const key in draw) {
console.log(`Hello ${key},
You are the secret santa for ${draw[key]}
To decode, open up a web browser console and run
atob("${draw[key]}")
------------------------------------------------
`)
}