JavaScript單行技巧:高效處理數(shù)據(jù)
本文翻譯自 10 one-liners that will change how you think about JavaScript forever,作者:Tari Ibaba, 略有刪改。
本文介紹JavaScript單行程序的獨特數(shù)據(jù)處理能力,單行技巧可以幫助我們更簡潔、更高效地處理數(shù)據(jù)。這些技巧不僅提升了代碼的可讀性,也減少了代碼行數(shù),使代碼更加緊湊。以下是一些JavaScript單行技巧,用于高效處理數(shù)據(jù),附帶相應的代碼示例。
圖片
像這樣令人驚嘆的單行程序顯示了您對語言的掌握及其獨特的數(shù)據(jù)處理能力。?
今天我們介紹有一些關于JavaScript的有趣的事情,大多數(shù)開發(fā)人員可能都沒這樣使用過。
下面程序中,我從17行命令行轉換到一個單行的功能語句。
圖片
轉換后:
圖片
轉換后的代碼相對要清晰優(yōu)雅,你可以清楚地看到數(shù)據(jù)是如何從輸入到輸出。
求一組數(shù)字的平均值
通過reduce將數(shù)組的總和除以它的長度,我們可以計算出數(shù)字的平均值。
const average = array => array.reduce((total, num) => total + num, 0) / array.length;
將URL的查詢字符串部分轉換成對象
這個示例展示了如何將查詢字符串轉換成對象。URLSearchParams會解析字符串,并返回一個可迭代的對象,之后通過Object.fromEntries將其轉換為對象,使得URL參數(shù)的檢索更加便捷。
const query = 'name=XXX&age=18';
// 將字符串解析為對象
const parseQuery = query => Object.fromEntries(new URLSearchParams(query));
// 結果: parseQuery = { name: 'XXX', age: '18' }
將秒數(shù)轉換為時間格式的字符串
此示例展示了秒數(shù)到 HH:MM:SS 字符串的轉換過程。通過創(chuàng)建一個 Date 對象,并根據(jù)秒數(shù)設置其時間值,最后格式化輸出。
const seconds = 9000; // 一小時是 3600 秒,多出 61 秒
const toTimeString = seconds => new Date(seconds * 1000).toISOString().substr(11, 8);
toTimeString(seconds); // '02:30:00'
反轉字符串
圖片
轉換后:
圖片
ID分組
按特定的對象屬性對數(shù)組進行分組:
圖片
使用示例:
圖片
代碼執(zhí)行效果:
圖片
生成隨機UUID
這里有有基本算術、冪、隨機值、方法、位移位、正則表達式、回調函數(shù)、遞歸、求冪……等一起工作。
圖片
生成隨機十六進制顏色
1行生成一個隨機的十六進制顏色:
圖片
數(shù)組相等
用一行代碼檢查數(shù)組是否相等。
? 11行:
圖片
? 1行:
圖片
? 或者:
圖片
電子郵件
電子郵件驗證都是關于正則表達式的:
圖片
還有更全面的驗證:
圖片
圖片
將JSON轉換為map
圖片
snake轉換為camel case
輕松地從蛇式轉換為駱駝式,無需臨時變量。
圖片
最后
將很多操作都集中在一個語句里;從輸入到輸出,不斷地處理,流暢地進行各種操作。這就是JavaScript單行程序的強大之處。