只用一行代码可以实现什么功能?对于新手,他可能会说一行代码可以打印一段日志,可以计算一个数值,但是JavaScript只用一行代码可以做很多复杂的事情,1LOC整理了上百种可以用一行代码就能实现的功能,包括数组、DOM操作、对象操作等等,非常实用!
举个例子:
- 创建给定范围内的数字数数组
const range = (min, max) => [...Array(max - min + 1).keys()].map(i => i + min);// Orconst range = (min, max) => Array(max - min + 1).fill(0).map((_, i) => min + i);// Orconst range = (min, max) => Array.from({ length: max - min + 1 }, (_, i) => min + i);// Examplerange(5, 10); // [5, 6, 7, 8, 9, 10]
- 序列化表单数据
const serialize = formEle => Array.from(new FormData(formEle)).reduce((p, [k, v]) => Object.assign({}, p, { [k]: p[k] ? (Array.isArray(p[k]) ? p[k] : [p[k]]).concat(v) : v}), {});
- 获取时区字符串
const getTimezone = () => Intl.DateTimeFormat().resolvedOptions().timeZone;// ExamplegetTimezone(); // 'Asia/Saigon'
- 检查一个值是否是一个生成器函数
const getTimezone = () => Intl.DateTimeFormat().resolvedOptions().timeZone;// ExamplegetTimezone(); // 'Asia/Saigon'
- 检查一个矩形是否与另一个重叠
const overlaps = (a, b) => (a.x1 < b.x2 && b.x1 < a.x2) || (a.y1 < b.y2 && b.y1 < a.y2);获取cookie值const cookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift();// Examplecookie('_ga'); // GA1.2.825309271.1581874719
当然,从实际应用角度来说,一行代码所实现的功能有些片面,但不可否认1LOC提供的这些例子确实很好用,学会这些会让你看起来像个专家。