1. 反转字符串
使用扩展符号...
将字符串解析成数组。
const reverseString = string => [...string].reverse().join('');
reverseString('Medium'); // 'muideM'
2. 数阶乘
计算数据的阶乘,使用箭头函数和三元运算符。
const factorialOfNumber = number =>
number < 0
? (() => {
throw new TypeError('No negative numbers please');
})()
: number <= 1
? 1
: number * factorialOfNumber(number - 1);
factorialOfNumber(4); // 24
3. 整数转数组
使用扩展符号...
,并结合map
方法。
const convertToArray = number => [...`${number}`].map(el => parseInt(el))
convertToArray(5678); // [5, 6, 7, 8]
4. 检查是否为2的幂数
这个很简单明了,巧妙运用了与(&)
运算符。
const isNumberPowerOfTwo = number => !!number && (number & (number - 1)) === 0;
isNumberPowerOfTwo(100); // false
isNumberPowerOfTwo(128); // true
5. 创建一级对象的键值对数组
本例子只是针对一级对象
创建数组,这个数组是二维的,其存储转换后对象的键值对
。
const keyValuePairsToArray = object => Object.keys(object).map(el => [el, object[el]]);
keyValuePairsToArray({ Better: 4, Programming: 2});
// [['Better', 4], ['Programming', 2]]
6. 返回数字数组中的最大值
下面我们定义了一个函数,参数一是要传递的数字数组,参数二是要返回的数组长度。当然,对于返回数字数组中的最小值
的思路也是一样。
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. 判断数组中的元素是否相同
我们的思路是:将数组中第二个开始的元素逐个与第一个元素相比较,使用===
符号比较噢。
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
函数对数组进行处理,再求平均数。
const averageOfNumbers = (...numbers) => numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0) / numbers.length;
averageOfNumbers(...[6, 7, 8]); // 7
averageOfNumbers(6, 7, 8, 9); // 7.5
后话
-
文章首发:https://github.com/reng99/blogs/issues/81
-
文章来源:https://thesmartcoder.dev/10-javascript-code-snippets-you-can-use-right-now/
-
更多内容:https://github.com/reng99/blogs
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!