scrimba
Note at 0:27
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 0:27
AboutCommentsNotes
Note at 0:27
Expand for more info
index.js
run
preview
console
const dangerArray = [
["🎅", "👺"],
[
["🎅", "🦁"],
["👹", "🎅"]
],
[
[
["🎅", "🐻"],
["👽", "🎅"]
],
[
["🐯", "🎅"],
["🎅", "😈"]
]
]
];

function saveSanta(arr, returnSanta) {
const consolidated = arr.reduce((acc, child) => {
if (Array.isArray(child)) {
acc.push(...saveSanta(child, returnSanta));
} else {
acc.push(child);
}
return acc;
}, []);

const santa = consolidated.filter(santa => santa === "🎅");
const nefariousCreatures = consolidated.filter(santa => santa !== "🎅");

return returnSanta ? santa : nefariousCreatures;
}

function displayResults() {
const returnSanta = document.getElementById('returnSanta').checked;
const results = saveSanta(dangerArray, returnSanta);
document.getElementById('results').innerHTML = results.join(' ');
}

document.getElementById('submitButton').addEventListener('click', displayResults);

console.log(`returnSanta: ${saveSanta(dangerArray, true)}`);
console.log(`nefariousCreatures: ${saveSanta(dangerArray, false)}`);
Console
"returnSanta: 🎅,🎅,🎅,🎅,🎅,🎅,🎅"
,
"nefariousCreatures: 👺,🦁,👹,🐻,👽,🐯,😈"
,
/index.html
LIVE