CHALLENGE
const curry = (fn) => {
const arity = fn.length;
return function curried(...args) {
if (args.length >= arity) {
return fn(...args);
}
return (...moreArgs) => curried(...args, ...moreArgs);
};
};
const volume = (l, w, h) => l * w * h;
const curriedVolume = curry(volume);
const withLength5 = curriedVolume(5);
const withLength5Width3 = withLength5(3);
console.log(typeof withLength5);
console.log(typeof withLength5Width3);
console.log(withLength5Width3(2));
console.log(curriedVolume(5)(3)(2) === withLength5(3)(2));
❤3🔥3👍1
What is the output?
Anonymous Quiz
21%
function function 30 false
27%
object function 30 true
36%
function function 30 true
17%
function number 30 true
🔥2❤1
CHALLENGE
const obj = {
name: "Quantum",
regular: function () {
return this.name;
},
arrow: () => {
return this?.name;
},
nested: function () {
const inner = () => this.name;
return inner();
},
};
console.log(obj.regular());
console.log(obj.arrow());
console.log(obj.nested());👍4❤3🔥3
What is the output?
Anonymous Quiz
18%
undefined undefined Quantum
27%
Quantum Quantum Quantum
24%
Quantum undefined undefined
30%
Quantum undefined Quantum
🔥2🤣1
CHALLENGE
const flags = {
READ: 0b0001,
WRITE: 0b0010,
EXECUTE: 0b0100,
DELETE: 0b1000,
};
const userPermissions = flags.READ | flags.WRITE | flags.EXECUTE;
const adminPermissions = userPermissions | flags.DELETE;
const canDelete = (adminPermissions & flags.DELETE) !== 0;
const readOnly = userPermissions & ~flags.WRITE;
const toggled = userPermissions ^ flags.EXECUTE;
const shifted = (flags.DELETE << 2) | (flags.READ >> 0);
console.log(canDelete, readOnly, toggled, shifted);❤2👍2🔥1
🤔3❤1
CHALLENGE
function createUser(
name,
role = "viewer",
permissions = { read: true, write: false },
level = permissions.write ? 2 : 1
) {
return { name, role, permissions, level };
}
const user1 = createUser("Carlos");
const user2 = createUser("Diana", "editor", { read: true, write: true });
const user3 = createUser("Eve", "admin", undefined, 5);
console.log(user1.role, user1.level);
console.log(user2.role, user2.level);
console.log(user3.role, user3.level);
🔥5🤩2👍1
What is the output?
Anonymous Quiz
16%
viewer 2 editor 2 admin 5
32%
viewer 1 editor 1 admin 5
39%
viewer 1 editor 2 admin 5
13%
viewer 1 editor 2 admin 2
❤3👍1
CHALLENGE
const user = {
profile: {
name: "Marcus",
address: {
city: "Berlin",
zip: "10115"
}
},
getSubscription: () => ({
plan: "pro",
features: ["analytics", "exports"]
})
};
const city = user?.profile?.address?.city;
const country = user?.profile?.address?.country?.toUpperCase();
const firstFeature = user?.getSubscription?.()?.features?.[0];
const adminRole = user?.roles?.[0]?.name ?? "guest";
console.log(city, country, firstFeature, adminRole);🔥4👍3🤩2❤1
What is the output?
Anonymous Quiz
20%
undefined undefined undefined guest
29%
Berlin null analytics null
44%
Berlin undefined analytics guest
8%
Berlin undefined undefined guest
🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣9🔥6👍1🤔1
CHALLENGE
const tag = (strings, ...values) => {
return strings.reduce((result, str, i) => {
const value = values[i - 1];
const transformed =
typeof value === "number" ? value * 2 : value?.toUpperCase();
return result + transformed + str;
});
};
const name = "carlos";
const score = 42;
const bonus = null;
const output = tag`Player: ${name}, Score: ${score}, Bonus: ${bonus}`;
console.log(output);❤1
CHALLENGE
const p1 = new Promise((resolve) => {
console.log("A");
resolve("B");
});
const p2 = p1.then((val) => {
console.log(val);
return "C";
});
p2.then((val) => {
console.log(val);
});
console.log("D");
🔥5❤2👍1
❤3🔥1
CHALLENGE
function highlight(strings, ...values) {
return strings.reduce((result, str, i) => {
const value = values[i - 1];
const transformed =
typeof value === "number"
? `[${value * 2}]`
: `(${String(value).toUpperCase()})`;
return result + transformed + str;
});
}
const product = "widget";
const qty = 4;
const price = 12.5;
const output = highlight`Order: ${product} x${qty} @ $${price}`;
console.log(output);❤5👍2🤣1
What is the output?
Anonymous Quiz
26%
Order: (WIDGET) x[4] @ $[25]
45%
Order: (WIDGET) x[8] @ $[25]
17%
Order: (widget) x[8] @ $[25]
12%
Order: (WIDGET) x[8] @ $[12.5]
❤3🔥3
CHALLENGE
function* pipeline(...fns) {
let value = yield;
for (const fn of fns) {
value = yield fn(value);
}
return value;
}
const double = x => x * 2;
const addTen = x => x + 10;
const square = x => x * x;
const gen = pipeline(double, addTen, square);
gen.next(); // prime the generator
const r1 = gen.next(3);
const r2 = gen.next(r1.value);
const r3 = gen.next(r2.value);
console.log(r1.value, r2.value, r3.value);❤4👍2
🔥3