1LOC



對於初入門TS/JS或是想精進技術的人,1LOC 真的是不能錯過的網站!1LOC 的LOC是指line of code的的縮寫,在這個網站內分門別類分享了許多程式碼,有TS也有JS的版本,幫助開發者在一行內以漂亮達成想要的效果。

以下從網站擷取一些範例 :

Invert keys and values of an object

const invert = (obj) => Object.fromEntries(Object.entries(obj).map(([k, v]) => [v, k]));
//How to use ?
invert({ a: '1', b: '2', c: '3' }); // { 1: 'a', 2: 'b', 3: 'c' }

Calculate Fibonacci numbers

const fibo = (n: number, memo: Record<string, number> = {}): number => memo[n] || (n <= 2 ? 1 : (memo[n] = fibo(n - 1, memo) + fibo(n - 2, memo)));
// How to use ?
fibo(1); // 1
fibo(2); // 1
fibo(3); // 2
fibo(4); // 3
fibo(5); // 5
fibo(6); // 8

Clear all cookies

const clearCookies = (): void => document.cookie.split(';').forEach((c) => (document.cookie = c.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`)));
clearCookies();

Generate a random hex color

const randomColor = (): string => `#${(~~(Math.random() * (1 << 24))).toString(16)}`;

考量到可讀性,有些程式碼像是fibonacci,比起一行解決我更傾向質樸地寫成十幾行的function,後人會更好維護。所以這個網站內的程式碼可供參考、作為學習的教材,但跟他寫的不一樣、沒有在一行內解決不代表就是壞code!能靈活運用、好閱讀、有效率最重要^^ 分享這個網站給大家~