Code snippets
Code snippets
Copy-ready answers to everyday coding questions, each with a short explanation. Laravel, PHP, JavaScript, SQL, Bash and more.
9 snippets · Show all
JavaScript
October 14, 2026
JavaScript dark mode toggle that remembers the user’s choice
Uses the system preference on the first visit, then saves the user’s choice in localStorage. It sets a data-theme attribute you can style in CSS.
const root = document.documentElement;
const saved = localStorage.getItem('theme');
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
JavaScript
October 14, 2026
JavaScript remove duplicates from an array
A Set keeps only unique values, so spreading it back into an array removes duplicates. For objects, dedupe by a key with a Map.
const nums = [1, 2, 2, 3, 3, 3];
const unique = [...new Set(nums)];
console.log(unique); // [1, 2, 3]
JavaScript
October 14, 2026
JavaScript fetch with timeout using AbortSignal.timeout
Cancels a request automatically if the server takes too long. It also checks response.ok, because fetch does not throw on HTTP errors like 404 or 500.
async function getJson(url, ms = 5000) {
const res = await fetch(url, { signal: AbortSignal.timeout(ms) });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.json();
JavaScript
October 14, 2026
JavaScript copy text to clipboard with the Clipboard API
Copies text with the modern async Clipboard API. It only works on HTTPS (or localhost) and usually needs to run from a user action such as a click.
async function copyText(text) {
try {
await navigator.clipboard.writeText(text);
return true;
JavaScript
October 14, 2026
JavaScript debounce function to limit how often a function runs
Delays a function until the user stops triggering it for a set time. Use it for search boxes, window resize and autosave so you don’t fire on every keystroke.
function debounce(fn, delay = 300) {
let timer;
return (...args) => {
clearTimeout(timer);
JavaScript
October 8, 2026
Union, intersection and difference of Sets with built-in Set methods
ES2025 adds set-algebra methods to Set, so you no longer write spread-and-filter helpers. They return new Sets. Needs Node 22+, Chrome 122, Firefox 127 or Safar...
const a = new Set([1, 2, 3]), b = new Set([3, 4]);
console.log(a.union(b), a.intersection(b), a.difference(b), a.symmetricDifference(b));
console.log(new Set([3]).isSubsetOf(a));
// Set(4) { 1, 2, 3, 4 } Set(1) { 3 } Set(2) { 1, 2 } Set(3) { 1, 2, 4 }
JavaScript
October 8, 2026
Group array items by property with Object.groupBy and Map.groupBy
Buckets an array by a callback’s return value, replacing the usual reduce boilerplate. Map.groupBy keeps non-string keys. The Object.groupBy result has a null p...
const people = [
{ name: "Ann", role: "dev" },
{ name: "Bob", role: "ops" },
{ name: "Cy", role: "dev" },
JavaScript
October 8, 2026
Sort, reverse and update arrays without mutating: toSorted, toReversed, with
These methods return a new array and leave the original untouched, which suits React state and other immutable code. Needs Node 20+, Chrome 110, Firefox 115 or...
const nums = [3, 1, 2];
const sorted = nums.toSorted((a, b) => a - b);
const reversed = nums.toReversed();
const replaced = nums.with(0, 99);
JavaScript
October 8, 2026
Deep clone objects in JavaScript with structuredClone()
Makes a true deep copy and keeps Date, Set and Map. It avoids the JSON.parse(JSON.stringify()) hack, which turns Dates into strings and drops Sets. Needs Node 1...
const orig = { user: { name: "Ada", tags: ["a"] }, when: new Date(0), ids: new Set([1, 2]) };
const copy = structuredClone(orig);
copy.user.tags.push("b");
console.log(orig.user.tags, copy.user.tags);