CHALLENGE
function makeCounter(start = 0, step = 1) {
let count = start;
const history = [];
return {
increment() {
count += step;
history.push(count);
return this;
},
decrement() {
count -= step;
history.push(count);
return this;
},
getHistory: () => history,
getCount: () => count,
};
}
const counter = makeCounter(10, 3);
counter.increment().increment().decrement();
console.log(counter.getCount());
console.log(counter.getHistory());β€5π3π₯2
What is the output?
Anonymous Quiz
24%
13 [13, 16, 10]
28%
10 [13, 16, 13]
43%
13 [ 13, 16, 13 ]
6%
16 [13, 16, 13]
Deno 2.9 (or the 'canary' build now) can turn JavaScript projects into self-contained apps on macOS, Windows, and Linux. Unlike Electron, you can opt to use the default OS WebView or a bundled Chromium backend, plus you get cross-compilation and automatic support for apps built on frameworks like Next.js and SvelteKit.
The Deno Project
Please open Telegram to view this post
VIEW IN TELEGRAM
β€7π6π₯2
CHALLENGE
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
async function processQueue(items) {
const results = [];
await items.reduce(async (prevPromise, item) => {
await prevPromise;
await delay(0);
results.push(item * 2);
}, Promise.resolve());
return results;
}
processQueue([1, 2, 3, 4])
.then((data) => console.log("Result:", data))
.catch((err) => console.log("Error:", err.message));
Promise.resolve()
.then(() => console.log("Microtask A"))
.then(() => console.log("Microtask B"));
β€5
Please open Telegram to view this post
VIEW IN TELEGRAM
π€£35π2π₯2β€1
CHALLENGE
function highlight(strings, ...values) {
return strings.reduce((result, str, i) => {
const value = values[i - 1];
const formatted =
typeof value === "number"
? `[${value.toFixed(2)}]`
: `<${String(value).toUpperCase()}>`;
return result + formatted + str;
});
}
const item = "sword";
const qty = 3;
const price = 9.5;
const output = highlight`You bought ${qty} ${item}s for $${price} each.`;
console.log(output);β€6
Please open Telegram to view this post
VIEW IN TELEGRAM
β€3π2
A Google Calendar-style experience for your own apps. Works with React, Vue and Angular (v7.0 adds Angular 22 support), but can be used with plain JavaScript. Hereβs a demo where you can play with the themes and styling approaches. MIT licensed with commercial extensions.
FullCalendar LLC
Please open Telegram to view this post
VIEW IN TELEGRAM
β€6π6
CHALLENGE
const inventory = [
{ name: "sword", type: "weapon", power: 85 },
{ name: "shield", type: "armor", power: 60 },
{ name: "bow", type: "weapon", power: 72 },
{ name: "helmet", type: "armor", power: 45 },
{ name: "dagger", type: "weapon", power: 91 },
];
const result = inventory
.filter(item => item.type === "weapon")
.map(item => ({ ...item, power: item.power * 1.1 }))
.sort((a, b) => b.power - a.power)
.reduce((acc, item, index) => {
acc[index === 0 ? "best" : "rest"] ??= [];
if (index === 0) acc.best = item.name;
else acc.rest.push(item.name);
return acc;
}, {});
console.log(result.best, result.rest);
β€2
What is the output?
Anonymous Quiz
25%
dagger [ 'sword', 'bow' ]
48%
dagger ["sword", "bow"]
16%
sword ["bow"]
11%
bow ["dagger", "sword"]
β€1π1
Please open Telegram to view this post
VIEW IN TELEGRAM
π€£14β€4π3π₯2
CHALLENGE
const handler = {
get(target, prop, receiver) {
if (prop in target) {
return Reflect.get(target, prop, receiver) * 2;
}
return `missing:${prop}`;
},
set(target, prop, value) {
if (typeof value !== "number") {
throw new TypeError("Only numbers allowed");
}
return Reflect.set(target, prop, value * 10);
},
has(target, prop) {
return prop.startsWith("x") ? false : prop in target;
},
};
const store = new Proxy({ xRay: 5, score: 3 }, handler);
store.level = 4;
console.log(store.xRay);
console.log(store.score);
console.log(store.level);
console.log("xRay" in store);
console.log("score" in store);
console.log(store.missing);
π3β€2π₯1
CHALLENGE
const inventory = {
warehouse: {
shelves: [
{ id: 'A1', items: ['bolts', 'nuts', 'washers'] },
{ id: 'B2', items: ['hammers', 'wrenches'] },
],
manager: { name: 'Carlos', shift: 'night' },
},
};
const {
warehouse: {
shelves: [{ items: [firstItem, , thirdItem] }, { id: shelfId }],
manager: { name, shift = 'day' },
},
} = inventory;
console.log(`${name} | ${shift} | ${shelfId} | ${firstItem} | ${thirdItem}`);π€£4β€2π1
CHALLENGE
async function fetchData(id) {
if (id <= 0) throw new Error("Invalid ID");
return { id, value: id * 10 };
}
async function process() {
const results = await Promise.allSettled([
fetchData(1),
fetchData(-1),
fetchData(3),
]);
results.forEach(({ status, value, reason }) => {
if (status === "fulfilled") {
console.log(`β
${value.id}: ${value.value}`);
} else {
console.log(`β ${reason.message}`);
}
});
}
process();β€5π₯1
What is the output?
Anonymous Quiz
26%
β
1: 10 β Error: Invalid ID β
3: 30
48%
β
1: 10 β Invalid ID β
3: 30
22%
β
1: 10 β
3: 30
5%
β Invalid ID β
1: 10 β
3: 30
β€2π1