UNPKG

secret-santa-js

Version:

Terminal tool for randomly assigning hashed names to each other.

35 lines (28 loc) 789 B
#!/usr/bin/env node 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]}") ------------------------------------------------ `) }