CHALLENGE
class Pipeline {
#value;
#log = [];
constructor(value) {
this.#value = value;
}
map(fn) {
this.#value = fn(this.#value);
this.#log.push(`map:${this.#value}`);
return this;
}
filter(fn) {
if (Array.isArray(this.#value)) {
this.#value = this.#value.filter(fn);
this.#log.push(`filter:${this.#value}`);
}
return this;
}
reduce(fn, init) {
this.#value = this.#value.reduce(fn, init);
this.#log.push(`reduce:${this.#value}`);
return this;
}
result() {
console.log(this.#log.join(' | '));
return this.#value;
}
}
const output = new Pipeline([1, 2, 3, 4, 5, 6])
.filter(x => x % 2 === 0)
.map(arr => arr.map(x => x ** 2))
.reduce((acc, x) => acc + x, 0)
.result();
console.log(output);โค3๐1
What is the output?
Anonymous Quiz
45%
filter:2,4,6 | map:4,16,36 | reduce:56 56
24%
filter:2,4,6 | map:2,4,6 | reduce:12 12
22%
filter:1,3,5 | map:1,9,25 | reduce:35 35
8%
filter:2,4,6 | map:4,16,36 | reduce:56 0
โค4๐2๐ฅ1
Available for several platforms, including Node, this SDK lets you wield the agentic engine behind Copilot in your own apps (coupled with your own custom-built tools) and it uses an existing Copilot subscription. The getting started tutorial provides a good intro and the cookbook includes some sample apps.
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
๐5โค4๐ค3๐ฅ1
CHALLENGE
const memoize = (fn) => {
const cache = new Map();
return (...args) => {
const key = JSON.stringify(args);
if (cache.has(key)) {
return cache.get(key);
}
const result = fn(...args);
cache.set(key, result);
return result;
};
};
let callCount = 0;
const expensiveMultiply = memoize((a, b) => {
callCount++;
return a * b;
});
console.log(expensiveMultiply(4, 5));
console.log(expensiveMultiply(4, 5));
console.log(expensiveMultiply(3, 7));
console.log(expensiveMultiply(4, 5));
console.log(`calls: ${callCount}`);
โค2๐2๐ฅ1
What is the output?
Anonymous Quiz
27%
20 20 21 20 calls: 4
43%
20 20 21 20 calls: 2
21%
20 20 21 20 calls: 3
10%
20 20 21 calls: 2
โค4๐1๐ฅ1
CHALLENGE
class Registry {
static #instances = new Map();
static #count = 0;
static defaultTTL;
static maxSize;
static {
Registry.defaultTTL = 3600;
Registry.maxSize = 100;
Registry.#instances.set("__init__", { ts: 0 });
Registry.#count = Registry.#instances.size;
}
static register(key) {
if (Registry.#count >= Registry.maxSize) return false;
Registry.#instances.set(key, { ts: Registry.defaultTTL });
Registry.#count++;
return true;
}
static info() {
return `count=${Registry.#count}, ttl=${Registry.defaultTTL}, max=${Registry.maxSize}`;
}
}
Registry.register("service-a");
Registry.register("service-b");
console.log(Registry.info());๐ค3โค1
What is the output?
Anonymous Quiz
21%
count=2, ttl=3600, max=100
32%
count=1, ttl=3600, max=100
25%
count=3, ttl=undefined, max=100
22%
count=3, ttl=3600, max=100
One of the yearโs big moves in JS tooling, as told by Evan himself. The company he founded to build Vite, Vitest, Rolldown, Oxc, etc. is joining Cloudflare. Heโs candid about why (monetization is hard). Good news: all projects stay MIT-licensed, and Evan and co remain in charge.
Evan You
Please open Telegram to view this post
VIEW IN TELEGRAM
๐ฅ2โค1๐1
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");
}
Reflect.set(target, prop, value + 10);
return true;
},
has(target, prop) {
return prop.startsWith("x") ? false : prop in target;
},
};
const store = new Proxy({ xray: 5, zoom: 8 }, handler);
store.nova = 3;
console.log(store.xray);
console.log(store.nova);
console.log(store.ghost);
console.log("zoom" in store);
console.log("xray" in store);โค1
What is the output?
Anonymous Quiz
17%
5 13 missing:ghost true false
37%
10 13 missing:ghost false true
24%
10 26 missing:ghost true true
21%
10 26 missing:ghost true false
โค1
Created by someone who works on graphics for the NYT, this elegant library lets you work with polygons, bounding boxes, reflection, interpolation, rotation, and the like (examples). Does one polygon intersect with another? Thereโs a function for that.
Harry Stevens (The New York Times)
Please open Telegram to view this post
VIEW IN TELEGRAM
โค1๐ฅ1
CHALLENGE
class BankAccount {
#balance;
#transactionLog = [];
constructor(initialBalance) {
this.#balance = initialBalance;
}
deposit(amount) {
this.#balance += amount;
this.#transactionLog.push(`+${amount}`);
return this;
}
withdraw(amount) {
if (amount > this.#balance) throw new Error("Insufficient funds");
this.#balance -= amount;
this.#transactionLog.push(`-${amount}`);
return this;
}
get summary() {
return `Balance: ${this.#balance} | Txns: ${this.#transactionLog.join(", ")}`;
}
}
const account = new BankAccount(100);
account.deposit(50).deposit(25).withdraw(30);
console.log(account.summary);
console.log(account.hasOwnProperty("#balance"));โค1
What is the output?
Anonymous Quiz
15%
true
30%
Balance: 175 | Txns: +50, +25, -30 false
30%
Balance: 145 | Txns: +50, +25, -30
24%
Balance: 145 | Txns: +50, +25, -30 false
๐ฅ3
Please open Telegram to view this post
VIEW IN TELEGRAM