上次24个实用 ES6 方法受到好评,这次再来 10个
2020/3/19 11:01:26
本文主要是介绍上次24个实用 ES6 方法受到好评,这次再来 10个,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
作者:Simon Holdorf 译者:前端小智 来源: webdevhub
点赞再看,养成习惯
本文
GitHub
github.com/qq449245884… 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。
毫无疑问,JavaScript 是Web开发中最流行的编程语言之一。 无论使用的是 React,Vue 还是Angular,都只是 JavaScript。 JS围绕着广阔而至关重要的生态系统发展,提供了无数的框架和库,可帮助我们更快地开发应用程序。
但是有时候最好退一步,尝试了解如何在没有使用库的情况下做事。 看看下面的代码片段,它们以优雅的方式解决了简单的问题,在日常项目也很实用,所以记好笔记,当遇到问题时就可直接来用使用。
1.字符串反转
在此示例中,我们使用展开运算符,Array的reverse
方法和 String 的join
方法来反转给定的字符串。
const reverseString = string => [...string].reverse().join('') // 事例 reverseString('Medium') // "muideM" reverseString('Better Programming') // "gnimmargorP retteB" 复制代码
2.计算指定数字的阶乘
const factorialOfNumber = number => number < 0 ? (() => { throw new TypeError('请输入正整数') })() : number <= 1 ? 1 : number * factorialOfNumber(number - 1) // 事例 factorialOfNumber(4) // 24 factorialOfNumber(8) // 40320 复制代码
3.将数字转换为数字数组
const converToArray = number => [...`${number}`].map(el => parseInt(el)) // 事例 converToArray(5678) // [5, 6, 7, 8] converToArray(12345678) // [1, 2, 3, 4, 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]] keyValuePairsToArray({x:1, y:2, z:3}) // [['x', 1], ['y', 2], ['z', 3]] 复制代码
6.返回数字数组中的最大值
const maxElementsFromArray = (array, number = 1) => [...array].sort((x, y) => y -x).slice(0, number) // 事例 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, 4]) // false elementsAreEqual([4, 4, 4, 4, 4]) // true 复制代码
8. 返回数的平均值
const averageOfTwoNumbers = (...numbers) => numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0) / numbers.length // 事例 averageOfTwoNumbers(...[6, 7, 8]) // 7 averageOfTwoNumbers(...[6, 7, 8, 9]) // 7.5 复制代码
9.返回两个或多个数字的和
const sumOfNumbers = (...array) => [...array].reduce((accumulator, currentValue) => accumulator + currentValue, 0) // 事例 sumOfNumbers(5, 6, 7, 8, 9, 10) // 45 sumOfNumbers(...[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) // 50 复制代码
10.返回数字数组的幂集
所谓幂集(Power Set), 就是原集合中所有的子集(包括全集和空集)构成的集族。可数集是最小的无限集; 它的幂集和实数集一一对应(也称同势),是不可数集。 不是所有不可数集都和实数集等势,集合的势可以无限的大。如实数集的幂集也是不可数集,但它的势比实数集大。 设X是一个有限集,|X| = k,则X的幂集的势为2的k次方。
const powersetOfArray = array => array.reduce((accumulator, currentValue) => accumulator.concat(accumulator.map(el => [currentValue].concat(el))), [[]]) // 事例 powersetOfArray([4, 2]) // [[], [4], [2], [2, 4]] powersetOfArray([1, 2, 3]) // [[], [1], [2], [2,1], [3], [3,1], [3,2], [3,2,1]] 复制代码
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
原文: webdevhub.net/articles/ja…
交流
文章每周持续更新,可以微信搜索「 大迁世界 」第一时间阅读和催更(比博客早一到两篇哟),本文 GitHub github.com/qq449245884… 已经收录,整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,另外关注公众号,后台回复福利,即可看到福利,你懂的。
这篇关于上次24个实用 ES6 方法受到好评,这次再来 10个的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门