TGViewer
Channel Public Channel
JavaScript

JavaScript

@javascript

A resourceful newsletter featuring the latest and most important news, articles, books and updates in the world of #javascript 🚀 Don't miss our Quizzes!

Let's chat: @nairihar
Subscribers
31.1K
Photos
1.2K
Videos
10
Links
895

Showing posts older than #2759 · Back to latest

Older Posts 20 shown
Post #2757 3.78K
  • 👍 9
  • ❤ 3
  • 🔥 1
Post #2756 3.75K
CHALLENGE

const numbers = [1, 2, 3, 4, 5];
const result = numbers
.filter(n => n % 2 === 0)
.map(n => n * 2)
.reduce((acc, n) => acc + n, 0);

const original = numbers.slice();
original.reverse();

const flattened = [[1, 2], [3], [4, 5]].flat();
const found = flattened.find(n => n > 3);

console.log(result);
console.log(original.length);
console.log(found);
  • ❤ 3
Post #2755 3.71K
😮 Navcat: 3D Floor-Based Pathfinding Library

It’s not often we see a library with such a funny demo on the homepage (it involves cats and laser pointers!) Navcat is a pathfinding library, aimed at games and simulations, for enabling objects to route through 3D space. There are numerous other interesting demos too. GitHub repo.

Isaac Mason
  • ❤ 9
  • 🔥 2
  • 👍 1
Post #2753 3.97K
CHALLENGE

const user = {
name: 'Sarah',
age: 28,
city: 'Boston'
};

const keys = Object.keys(user);
const values = Object.values(user);
const entries = Object.entries(user);

const result = entries.map(([key, value]) => {
return typeof value === 'string' ? key.toUpperCase() : value * 2;
});

console.log(result);
  • ❤ 8
  • 👍 2
  • 🔥 2
Post #2752 3.97K
🔵 Directives and the Platform Boundary

First there was the "use strict" directive to opt in to strict mode in JavaScript, but now you’ll encounter use client, use server, React's new use no memo, and more, and they're not standard JS features at all. Tanner thinks this proliferation of directives comes at a cost, with an increased risk of framework and tooling lock-in.

Tanner Linsley (TanStack)
Post #2750 4.31K
  • 🤔 7
  • ❤ 3
  • 👍 1
  • 🔥 1
Post #2749 4.19K
CHALLENGE

const str = 'JavaScript';
const result1 = str.slice(-6, -2);
const result2 = str.substring(-6, -2);
const result3 = str.substr(-6, 4);
const combined = [result1, result2, result3];
const final = combined.map(s => s || 'empty').join(' | ');
console.log(final);
Post #2748 4.32K
  • 👍 3
  • ❤ 2
  • 🔥 2
Post #2747 3.96K
CHALLENGE

function highlight(strings, ...values) {
return strings.reduce((result, string, i) => {
const value = values[i] ? `<mark>${values[i]}</mark>` : '';
return result + string + value;
}, '');
}

const name = 'Sarah';
const skill = 'React';
const template = highlight`Hello ${name}, you're great at ${skill}!`;

console.log(template);
Post #2746 4.11K
  • 🔥 3
  • ❤ 2
  • 👍 1
Post #2745 3.79K
CHALLENGE

const target = { name: 'Sarah', age: 25 };
const handler = {
get(obj, prop) {
if (prop in obj) {
return obj[prop].toString().toUpperCase();
}
return `Property ${prop} not found`;
},
set(obj, prop, value) {
obj[prop] = value * 2;
return true;
}
};
const proxy = new Proxy(target, handler);
proxy.salary = 50000;
console.log(proxy.name);
console.log(proxy.age);
console.log(proxy.salary);
console.log(proxy.city);
Post #2744 3.72K
🤟 Awesome Node: Over 500 Curated Packages, Resources and Links

It’s been more than four years since we linked to Sindre's handy resource, but it continues to get updates and tweaks (and, if you want, you can contribute a submission too – though the bar is quite high).

Sindre Sorhus
  • ❤ 5
  • 🔥 3
  • 👍 2
Post #2743 3.79K
  • ❤ 4
  • 👍 2
  • 🔥 1
Post #2742 3.73K
CHALLENGE

class DataProcessor {
constructor(transform) {
this.transform = transform;
}

process(data) {
return this.transform(data);
}
}

const multiply = x => x * 2;
const addTen = x => x + 10;
const toString = x => `Result: ${x}`;

const compose = (...fns) => x => fns.reduceRight((acc, fn) => fn(acc), x);

const processor = new DataProcessor(compose(toString, addTen, multiply));
console.log(processor.process(5));
  • ❤ 4
  • 🔥 2
Post #2741 3.79K
  • 👍 5
  • ❤ 2
  • 🔥 1
Post #2740 3.86K
CHALLENGE

async function fetchData() {
return Promise.resolve('data');
}

async function processData() {
const result = await fetchData();
console.log('Processing:', result);
return result.toUpperCase();
}

const promise = processData();
console.log('Promise:', promise);

promise.then(value => {
console.log('Final:', value);
});
Post #2739 3.92K
👀 Vitest 4.0 Released: The Vite-Native Testing Framework

The Vite-powered, Jest-compatible testing framework introduces visual regression testing, makes its ‘Browser Mode’ stable (for running tests in a browser directly), adds Playwright Traces support, and more. Still unsure? You can compare it with other test runners here.

VoidZero and Contributors
  • ❤ 4
  • 👍 2
  • 🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →