單行代碼極難維護(hù)(有時(shí)甚至很難理解),但這都無法阻止它們非常酷。完成編寫一個(gè)極簡解決方案后,你一定會很滿足的。
這有一些我最近心愛的收藏。它們都可以直接在你的開放控制臺中運(yùn)行,來試試吧。我希望你也可以在評論中分享你喜歡的代碼。
1. 日歷黑客
Ali Spittel 推送了 最近動態(tài)。它解決了一個(gè)我多次面對的問題。如果你把減號換成加號,它會給你接下來七天的日子。
// 創(chuàng)建一個(gè)過去七天的數(shù)組,包含 [...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days));
2. 隨機(jī)生成 ID
這是我在原型化時(shí)創(chuàng)建唯一 ID 的常用功能。我甚至曾見有人在生產(chǎn)模式中使用它。這不是安全的,但是……還有更差的隨機(jī)生成函數(shù)。
// 生成一個(gè)長度為 11 的隨機(jī)字母字符串 Math.random().toString(36).substring(2);
3、Quine
quine 是一個(gè)輸出自身源碼的程序。Quine 總讓我如此癡迷。我已經(jīng)有好幾次用不同的語言來完成我自己的quine了,但是細(xì)節(jié)是最重要的。
我為你挑選了一些優(yōu)勝者。這三個(gè)分別來自 Mama Fun Roll, PleaseStand,和 Peter Olson 。
// $=_=>`$=${$};$()`;$() $=_=>`$=${$};$()`;$() // eval(I="'eval(I='+JSON.stringify(I)+')'") eval(I="'eval(I='+JSON.stringify(I)+')'") // For those who like their quines via alert // (function a(){alert("("+a+")()")})() (function a(){alert("("+a+")()")})()
4、獲取查詢參數(shù)
這是關(guān)于不可維護(hù)的代碼。這會把頁面的查詢參數(shù)轉(zhuǎn)換為 78 字節(jié)的對象。感謝 Alex Lohr 提供代碼實(shí)現(xiàn)(還有齊翊)。
?foo=bar&baz=bing => {foo: bar, baz: bing}
// 設(shè)置 `q` 的值為當(dāng)前頁面的查詢參數(shù) q={};location.search.replace(/([^?&=]+)=([^&]*)/g,(_,k,v)=>q[k]=v);q;
我想看到迷你機(jī)這么努力的工作。
5. 工作鬧鐘
僅需少量代碼,你就可以創(chuàng)建一個(gè)工作鬧鐘,并且你可以一口氣讀完它的源碼。經(jīng)過和同事的挑戰(zhàn),我寫了這篇文章。它每秒鐘計(jì)時(shí)一次,并使用當(dāng)前時(shí)間更新頁面。
<body onload="setInterval(()=>document.body.innerHTML=new Date().toGMTString().slice(17,25))"></body>
6、隨機(jī)排列一個(gè)數(shù)組
在 Pythonistas 展示 import random
,random.shuffle(array)
解決方案前,我們只能自食其力。這有一個(gè)好處是,成為無限循環(huán)的機(jī)會很?。ㄈQ于你的實(shí)現(xiàn))。Michiel Hendriks 幫助我們節(jié)省一些字符