返回
使用 JavaScript 单行代码玩转 11 个惊人技巧
前端
2023-09-30 02:57:35
前言
向往用更少的代码编写出能满足业务需求的 JavaScript 程序?如果答案是肯定的,那么本文将带你一窥 JavaScript 单行代码的奥秘,让你对优雅高效的代码表达惊叹。
1. 交换变量的值
需要交换两个变量的值,常规的做法是使用一个临时变量来辅助交换,而单行代码可以做到无需临时变量即可完成交换。看下面的代码:
[a, b] = [b, a];
2. 随机生成整数
使用 Math.random() 函数可以轻松地生成随机数,但如果想生成一个随机整数,就需要一些技巧。来看看这行单行代码:
Math.floor(Math.random() * (max - min + 1)) + min;
3. 判断回文
判断一个字符串是否是回文,即正反读都相同,同样可以用单行代码实现:
str === str.split('').reverse().join('');
4. 求数组的最大值
想要求出一个数组中的最大值,可以使用 Math.max() 函数,而单行代码同样可以轻松搞定:
Math.max.apply(null, arr);
5. 数组去重
在 JavaScript 中,使用 Set 数据结构可以轻松实现数组去重,而用单行代码同样可以实现:
[...new Set(arr)];
6. 字符串反转
字符串反转也是一个常见的问题,常规做法是使用 for 循环,而单行代码同样可以轻松实现:
str.split('').reverse().join('');
7. 数组排序
数组排序是另一个常见问题,通常使用 sort() 函数,而单行代码同样可以实现:
arr.sort((a, b) => a - b);
8. 数组过滤
想要过滤出数组中的奇数元素,可以使用 filter() 函数,而单行代码同样可以实现:
arr.filter((item) => item % 2 !== 0);
9. 数组映射
想要将数组中的每个元素都乘以 2,可以使用 map() 函数,而单行代码同样可以实现:
arr.map((item) => item * 2);
10. 数组化简
想要将数组中的所有元素相加,可以使用 reduce() 函数,而单行代码同样可以实现:
arr.reduce((acc, curr) => acc + curr, 0);
11. 函数柯里化
函数柯里化是将一个函数的部分参数预先固定,使之成为一个新的函数。这在函数式编程中很常见。下面是一行单行代码实现的柯里化函数:
const curry = (fn) => (...args) => (args.length >= fn.length ? fn(...args) : curry(fn.bind(null, ...args)));
结语
以上 11 个 JavaScript 单行代码技巧,展示了如何用简单优雅的代码解决常见问题。希望这些技巧能激励你探索 JavaScript 的更多可能性,在编程的世界里自由翱翔。