前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript中实用的8个代码片段

JavaScript中实用的8个代码片段

作者头像
Jimmy_is_jimmy
发布2020-12-03 10:02:33
7680
发布2020-12-03 10:02:33
举报
文章被收录于专栏:call_me_Rcall_me_R
banner
banner

1. 反转字符串

使用扩展符号...将字符串解析成数组。

代码语言:javascript
复制
const reverseString = string => [...string].reverse().join('');

reverseString('Medium'); // 'muideM'
复制代码

2. 数阶乘

计算数据的阶乘,使用箭头函数和三元运算符。

代码语言:javascript
复制
const factorialOfNumber = number => 
  number < 0
    ? (() => {
      throw new TypeError('No negative numbers please');
    })()
    : number <= 1
      ? 1
      : number * factorialOfNumber(number - 1);
      
factorialOfNumber(4); // 24
复制代码

3. 整数转数组

使用扩展符号...,并结合map方法。

代码语言:javascript
复制
const convertToArray = number => [...`${number}`].map(el => parseInt(el))

convertToArray(5678); // [5, 6, 7, 8]
复制代码

注意这里的${number},而不是number

4. 检查是否为2的幂数

这个很简单明了,巧妙运用了与(&)运算符。

代码语言:javascript
复制
const isNumberPowerOfTwo = number => !!number && (number & (number - 1)) === 0;

isNumberPowerOfTwo(100); // false
isNumberPowerOfTwo(128); // true
复制代码

5. 创建一级对象的键值对数组

本例子只是针对一级对象创建数组,这个数组是二维的,其存储转换后对象的键值对

代码语言:javascript
复制
const keyValuePairsToArray = object => Object.keys(object).map(el => [el, object[el]]);

keyValuePairsToArray({ Better: 4, Programming: 2});
// [['Better', 4], ['Programming', 2]]
复制代码

6. 返回数字数组中的最大值

下面我们定义了一个函数,参数一是要传递的数字数组,参数二是要返回的数组长度。当然,对于返回数字数组中的最小值的思路也是一样。

代码语言:javascript
复制
const maxElementsFromArray = (array, len = 1) => [...array].sort((x, y) => y - x).slice(0, len);

maxElementsFromArray([1, 2, 3, 4, 5]); // [5]
maxElementsFromArray([7, 8, 9, 10, 10], 2); // [10, 10]
复制代码

7. 判断数组中的元素是否相同

我们的思路是:将数组中第二个开始的元素逐个与第一个元素相比较,使用===符号比较噢。

代码语言:javascript
复制
const elementsAreEqual = array => array.every(el => el === array[0]);

elementsAreEqual([9, 8, 7, 6, 5]); // false
elementsAreEqual([4, 4, 4, 4, 4]); // true
复制代码

8. 计算平均数

我们使用reduce函数对数组进行处理,再求平均数。

举一反三,计算数的和等也是这种思路

代码语言:javascript
复制
const averageOfNumbers = (...numbers) => numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0) / numbers.length;

averageOfNumbers(...[6, 7, 8]); // 7
averageOfNumbers(6, 7, 8, 9); // 7.5
复制代码

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 反转字符串
  • 2. 数阶乘
  • 3. 整数转数组
  • 4. 检查是否为2的幂数
  • 5. 创建一级对象的键值对数组
  • 6. 返回数字数组中的最大值
  • 7. 判断数组中的元素是否相同
  • 8. 计算平均数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档