首页 > 编程语言 >总结28个令人惊艳的JavaScript单行代码

总结28个令人惊艳的JavaScript单行代码

时间:2024-10-02 19:34:18浏览次数:8  
标签:acc const cur JavaScript 28 惊艳 数组 字符串 array

1. 阶乘计算

使用递归函数计算给定数字的阶乘。

1 2 const factorial = n => n === 0 ? 1 : n * factorial(n - 1); console.log(factorial(5)); // 输出 120

 

2. 判断一个变量是否为对象类型

1 const isObject = variable === Object(variable);

 

3. 数组去重

利用Set数据结构的特性,去除数组中的重复元素。

1 const uniqueArray = [...new Set(array)];

 

4. 数组合并

合并多个数组,创建一个新的数组。

1 const mergedArray = [].concat(...arrays);

 

5. 快速最大值和最小值

获取数组中的最大值和最小值。

1 2 const max = Math.max(...array); const min = Math.min(...array);

 

6. 数组求和

快速计算数组中所有元素的和。

1 const sum = array.reduce((acc, cur) => acc + cur, 0);

 

7. 获取随机整数

生成一个指定范围内的随机整数。

1 const randomInt = Math.floor(Math.random() * (max - min + 1)) + min;

 

8. 反转字符串

将字符串反转。

1 const reversedString = string.split('').reverse().join('');

 

9. 检查回文字符串

判断一个字符串是否为回文字符串。

1 const isPalindrome = string === string.split('').reverse().join('');

 

10. 扁平化数组

将多维数组转换为一维数组。

1 const flattenedArray = array.flat(Infinity);

 

11. 取随机数组元素

从数组中随机取出一个元素。

1 const randomElement = array[Math.floor(Math.random() * array.length)];

 

12. 判断数组元素唯一

检查数组中的元素是否唯一。

1 const isUnique = array.length === new Set(array).size;

 

13. 字符串压缩

将字符串中重复的字符进行压缩。

1 const compressedString = string.replace(/(.)\1+/g, match => match[0] + match.length);

 

14. 生成斐波那契数列

生成斐波那契数列的前n项。

1 const fibonacci = Array(n).fill().map((_, i, arr) => i <= 1 ? i : arr[i - 1] + arr[i - 2]);

 

15. 数组求交集

获取多个数组的交集。

1 const intersection = arrays.reduce((acc, cur) => acc.filter(value => cur.includes(value)));

 

16. 验证邮箱格式

检查字符串是否符合邮箱格式。

1 const isValidEmail = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/.test(email);

 

17. 数组去除假值

移除数组中的所有假值,如falsenull0""undefined

1 const truthyArray = array.filter(Boolean);

 

18. 求阶乘

计算一个数的阶乘。

1 const factorial = n => n <= 1 ? 1 : n * factorial(n - 1);

 

19. 判断质数

检查一个数是否为质数。

1 const isPrime = n => ![...Array(n).keys()].slice(2).some(i => n % i === 0);

 

20. 检查对象是空对象

判断对象是否为空对象。

1 const isEmptyObject = Object.keys(object).length === 0 && object.constructor === Object;

 

21. 判断回调函数为真

检查数组中的每个元素是否满足特定条件。

1 const allTrue = array.every(condition);

 

22. 检查回调函数为假

检查数组中是否有元素满足特定条件。

1 const anyFalse = array.some(condition);

 

23. 数组排序

对数组进行排序。

1 const sortedArray = array.sort((a, b) => a - b);

 

24. 日期格式化

将日期对象格式化为指定格式的字符串。

1 const formattedDate = new Date().toISOString().slice(0, 10);

 

25. 将字符串转为整数类型

1 const intValue = +str;

 

26. 计算数组中元素出现的次数

统计数组中各元素的出现次数。

1 const countOccurrences = array.reduce((acc, cur) => (acc[cur] ? acc[cur]++ : acc[cur] = 1, acc), {});

 

27. 交换两个变量的值

1 [a, b] = [b, a];

 

28. 利用逗号运算符分隔多个表达式

1 const result = (expression1, expression2, ..., expressionN);

以上就是总结28个令人惊艳的JavaScript单行代码的详细内容

标签:acc,const,cur,JavaScript,28,惊艳,数组,字符串,array
From: https://www.cnblogs.com/zangao/p/18445012

相关文章

  • 2024初秋集训——提高组 #28
    B.车轮战题目描述你将进行\(N\)场决斗。一开始你的战斗力为\(s\),咒术强度为\(x\)。每次决斗之前你可以选择:令\(s\leftarrows+x\)。令\(x\leftarrowx+1\)。每次决斗,如果你的\(s\gef_i\),则你赢得决斗。求最多能赢多少场决斗。思路我们可以发现,你最多会进行\(80......
  • JavaScript-快速语法参考-全-
    JavaScript快速语法参考(全)原文:JavaScriptQuickSyntaxReference协议:CCBY-NC-SA4.0一、使用JavaScript要开始试验JavaScript,您应该安装一个支持这种语言的集成开发环境(IDE)。有很多不错的选择,比如NetBeans、Eclipse、VisualStudio、括号。在本书中,我们将使用NetBe......
  • JavaScript-正则表达式入门指南-全-
    JavaScript正则表达式入门指南(全)原文:IntroducingRegularExpressions协议:CCBY-NC-SA4.0一、正则表达式简介为了开始介绍正则表达式,我将从一个例子开始。这是一个你已经经历了几百次的问题。当您在线输入客户数据时,许多web表单会要求您提供电子邮件地址。为了避免输入......
  • 28_分布式文档系统_阶段性总结以及什么是distributed document store
    1、阶段性总结1~8讲:快速入门了一下,最基本的原理,最基本的操作9~13讲:在入门之后,对ES的分布式的基本原理,进行了相对深入一些的剖析14~27讲:围绕着document这个东西,进行操作,进行讲解和分析2、什么是distributeddocumentstore到目前为止,你觉得你在学什么东西,给大家一个直观的感觉......
  • CF280C Game on Tree题解
    题目描述给定一棵有根树,结点编号从1到n。根结点为1号结点。对于每一次操作,等概率的选择一个尚未被删去的结点并将它及其子树全部删去。当所有结点被删除之后游戏结束。也就是说,删除1号结点后游戏即结束。要求求出删除所有结点的期望操作次数。不是哥们,我好不容易国庆......
  • 电影《749局》迅雷百度云下载资源4K分享[1.16GB/2.72GBMKV]高清加长版【1280P已完结】
    电影《749局》的深度剖析与全面解读电影《749局》是一部集科幻、冒险、动作与奇幻元素于一体的力作,由陆川编剧并执导,王俊凯、苗苗、郑恺、任敏、辛柏青领衔主演,李晨特邀主演,张钧甯、李梦、杨皓宇特别主演。影片于2024年国庆档在中国大陆上映,以其独特的科幻设定、宏大的视觉效......
  • [rCore学习笔记 028] Rust 中的动态内存分配
    引言想起我们之前在学习C的时候,总是提到malloc,总是提起,使用malloc现场申请的内存是属于堆,而直接定义的变量内存属于栈.还记得当初学习STM32的时候CubeIDE要设置stack和heap的大小.但是我们要记得,这么好用的功能,实际上是操作系统在负重前行.那么为了实现动态内存分配功......
  • JavaScript笔记
    基操数据类型原始类型对象类型MapandSet流程控制函数及面向对象函数方法常用内部对象面向对象编程(OOP)操作BOM元素操作DOM元素(I)操作表单jQuery基操js作为一种脚本语言,可以嵌入到HTML页面中js是双标签,可以写多行,也可以写一行内部标签<script>......
  • 带I2C的LCD12864使用经验总结和例程(RSCG12864B)
    搬运说明:本文是本人在24年4月CSDN上发布的,现全文搬运至博客园,图片水印暂未去除,并删除原CSDN博文。本文简要说明了带I2C协议的LCD12864屏幕的使用经验与教训,特别是厂家说明书说法有误或未提及的内容。文末也提供一个本人编写的STC89C52单片机读取SHT30温湿度传感器并显示在LCD1286......
  • 教你如何免费获取股票数据用python、JavaScript (Node.js)、JAVA等多种语言的实例代码
    ​近一两年来,股票量化分析逐渐受到广泛关注。而作为这一领域的初学者,首先需要面对的挑战就是如何获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的核心任务是从这些数据......