20 Actually Useful JavaScript One-Liners (2026)
In this tutorial, you'll learn about 20 actually useful javascript one. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.
One-liners get a bad reputation as code-golf tricks. These aren't that. Each one solves a concrete daily problem — deduplicating arrays, cloning objects safely, debouncing input handlers, or Parsing URL parameters. They're short enough to memorize, practical enough to use every day.
Arrays
Deduplicate an array
const unique = arr => [...new Set(arr)];
unique([1, 2, 2, 3, 3, 4]); // [1, 2, 3, 4]
Remove falsy values
const compact = arr => arr.filter(Boolean);
compact([0, 1, false, 2, '', 3]); // [1, 2, 3]
Shuffle an array (Fisher-Yates)
const shuffle = arr => arr.map(v => ({ v, r: Math.random() })).sort((a, b) => a.r - b.r).map(v => v.v);
shuffle([1, 2, 3, 4, 5]); // [3, 1, 5, 2, 4] (random)
Chunk into groups
const chunk = (arr, size) => arr.reduce((acc, _, i) => i % size === 0 ? [...acc, arr.slice(i, i + size)] : acc, []);
chunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]
Intersection of two arrays
const intersection = (a, b) => a.filter(v => b.includes(v));
intersection([1, 2, 3], [2, 3, 4]); // [2, 3]
Difference of two arrays (in a but not in b)
const difference = (a, b) => a.filter(v => !b.includes(v));
difference([1, 2, 3], [2, 3, 4]); // [1]
Flatten one level
const flatten = arr => arr.flat();
flatten([[1, 2], [3, 4]]); // [1, 2, 3, 4]
Flatten deeply (any depth)
const deepFlatten = arr => arr.flat(Infinity);
deepFlatten([1, [2, [3, [4]]]]); // [1, 2, 3, 4]
Objects
Deep clone without libraries
const deepClone = obj => structuredClone(obj);
// Browser-native, handles dates, arrays, maps, sets, circular refs
Pick specific keys
const pick = (obj, keys) => Object.fromEntries(keys.filter(k => k in obj).map(k => [k, obj[k]]));
pick({ a: 1, b: 2, c: 3 }, ['a', 'c']); // { a: 1, c: 3 }
Omit specific keys
const omit = (obj, keys) => Object.fromEntries(Object.entries(obj).filter(([k]) => !keys.includes(k)));
omit({ a: 1, b: 2, c: 3 }, ['b']); // { a: 1, c: 3 }
Group by key
const groupBy = (arr, fn) => arr.reduce((acc, v) => { const k = fn(v); (acc[k] ??= []).push(v); return acc; }, {});
groupBy([6.1, 4.2, 6.3], Math.floor); // { 4: [4.2], 6: [6.1, 6.3] }
Sort by key
const sortBy = (arr, key) => arr.sort((a, b) => a[key] > b[key] ? 1 : -1);
sortBy([{ n: 3 }, { n: 1 }, { n: 2 }], 'n'); // [{ n: 1 }, { n: 2 }, { n: 3 }]
Deep freeze an object
const deepFreeze = obj => { Object.keys(obj).forEach(k => typeof obj[k] === 'object' && deepFreeze(obj[k])); return Object.freeze(obj); };
Strings & Values
Random hex color
const randomHex = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, '0')}`;
randomHex(); // #a3f7c2
Copy to clipboard
const copy = text => navigator.clipboard.writeText(text);
copy("Hello"); // Copies to clipboard
Detect dark mode
const isDarkMode = () => window.matchMedia('(prefers-color-scheme: dark)').matches;
isDarkMode(); // true or false
Async & DOM
Wait / delay
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
await wait(1000); // Waits 1 second
Debounce (with leading option)
const debounce = (fn, delay) => { let t; return (...args) => { clearTimeout(t); t = setTimeout(() => fn(...args), delay); }; };
Throttle
const throttle = (fn, limit) => { let inThrottle; return (...args) => { if (!inThrottle) { fn(...args); inThrottle = true; setTimeout(() => inThrottle = false, limit); } }; };
Parse URL parameters
const getParams = url => Object.fromEntries(new URL(url).searchParams);
getParams('https://example.com?a=1&b=2'); // { a: '1', b: '2' }
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro